#include <stdio.h>
#include <stdlib.h>
//#include <wchar.h>
int main(int argc, char **argv)
{
char *c = (char *)malloc(sizeof(char) * 30);
if (argc < 2)
{
fprintf(stderr, "%s", "argc < 2\n");
exit(1);
}
sprintf(c, "sprintf() string : %s\t argc: %i", argv[1], argc);
fprintf(stdout, "%s\n", c);
fprintf(stdout, "%s", "Done!\n");
free(c);
return 0;
}
我在兩個編譯器上編譯了這個程序,兩者都產生相同的運行時錯誤。但是我不能確定這個錯誤。我在sprintf()中正確格式化了字符串嗎?有什麼我忘記了嗎?sprintf()程序undefined返回值
我運行此程序的argv參數[1] = 「星期日」
請勿投射'malloc':http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc – Barmar
你會得到什麼運行時錯誤? – Barmar
***處理返回-1073741819 *** – skrillac