syl*_*syl 11 c printf segmentation-fault
numCheck是1-1000之间的数字.只有当我在charcheck中收集sprintf的结果时,此代码才会给我一个段错误.如果我只是在不使用结果的情况下使用sprintf,我就不会遇到seg错误.这里发生了什么事?
char * numString;
int charcheck = sprintf(numString, "%d", numCheck);
Run Code Online (Sandbox Code Playgroud)
你需要提供自己的记忆sprintf.另外,不要使用sprintf,而是snprintf:
char buf[1000] = {0};
snprintf(buf, 999, ....);
Run Code Online (Sandbox Code Playgroud)
或者,您可以动态分配内存:
char * buf = new char[BUFSIZE];
snprintf(buf, BUFSIZE-1, ...);
/* ... */
delete[] buf;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21483 次 |
| 最近记录: |