我正在使用字符串
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
我认为我正确地做了但不确定为什么它会崩溃。
答案 0 :(得分:0)
你需要malloc
个字符而不是字符指针。
即。变化
sizeof(char*)
到
1
或者只是把
char *input = malloc(buf);
答案 1 :(得分:0)
我会在一段时间之前发现问题的答案。
我需要更改sizeof以获取单个char的大小,而不是指针。
char *input = malloc(sizeof(char) * buf);