【发布时间】:2016-06-17 15:35:24
【问题描述】:
问题可能很简单,但经过数小时的研究和编辑后我无法让它工作,所以我在这里发布我的问题。
我正在尝试制作一个函数,它接收一位整数或两位整数,并在将其转换为两位整数格式(例如 7 到 07)后将其作为字符串返回。
char *to_two_digits(int num) {
char num_str[4];
sprintf(num_str, "%d", num);
int length = sizeof(*num_str) / sizeof(char);
static char *return_string;
if (length == 1) {
sprintf_s(return_string, "0%d", num);
return return_string;
}
else if (length == 2) {
*return_string = *num_str;
return return_string;
}
else {
printf("Error! Number cannot be represented as a two-digit.");
exit(1);
}
}
运行 sprintf_s() 函数时函数失败,错误提示:
--------------- Microsoft Visual C++ 运行时库-----------
调试断言失败!
文件:minkernel\crts\ucrt\src\appcrt\stdio\output.cpp
线路:261
表达式:格式!= nullptr
有什么问题,我该如何解决?提前谢谢你。
【问题讨论】:
-
你的minimal reproducible example在哪里,我们怎么能看到它?提前谢谢你。
标签: c++