int main()
{
char* in = (char *)malloc(sizeof(char)*100);
in = "Sort of Input String with LITERALS AND NUMBERS\0";
free(in);
return 0;
}
爲什麼這段代碼不能處理這個錯誤?爲什麼free()在C中不起作用?
pointers(10144,0x7fff78a82000) malloc: *** error for object 0x10ba18f88: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
bash: line 1: 10144 Abort trap: 6 '/Users/.../Documents/term2_sr/pointers'
[Finished in 0.1s with exit code 134]
'in'是一個已命名的指針變量。因此它不會被重新分配。此外,字符串文字不(重新)分配。 – Olaf
@Olaf對不起,「重新分配」 –