我有这段代码:
char *test = malloc(sizeof(char) * 1);
test[0] = 't';
test[1] = 'e';
test[2] = 's';
test[3] = 't';
test[4] = '\0';
printf("%s", test);
我用一个sizeof char来测试我的测试。 但是当我运行这个程序时,我的程序不会出现段错误。为什么? ..
谢谢!
答案 0 :(得分:0)
简而言之,malloc不能保证能够捕获程序的所有内存错误行为并引发分段错误。
事实上,人们会认为这只是最好的情况,在最坏的情况下,你将覆盖你的程序的其他数据。
有关详细信息,请参阅重复帖子。