我正在分配一个字符串
int main(){
int buf = 1024;
char *input = malloc(sizeof(char*) * buf);
//CODE
scanf("%s", input);
//MORE CODE
free(input);
}
如果我没有将输入字符串设置为它可以工作的任何内容,那么当它设置为某个内容时它就会崩溃。
malloc: *** error for object 0x100f01efa: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Abort trap: 6
我认为我做得正确,但不太确定为什么会崩溃。
最佳答案
您需要malloc
字符而不是字符指针。
即改变
sizeof(char*)
至
1
或者直接输入
char *input = malloc(buf);
关于c - Malloced char* 但崩溃并说它没有 malloc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35953970/