0
我从我的代码中得到一个错误,但我不知道在哪里解决它。C代码错误:免费():无效的下一个大小(快):
这里的解释我的代码呢:
我正在写一些代码,会读取输入文件,并存储在数组中的每一行作为一个对象(char类型)。输入文件的第一行是一个数字。这个数字告诉我应该在阵列中读取和存储多少行。这里是我的代码:
int main(int argc, char *argv[]){
FILE *fp;
char **path;
int num, i;
...
/*after reading the first line and store the number value in num*/
path = malloc(num *sizeof(char));
...
free(path);
}
运行代码后,我得到这个
*** glibc detected *** free(): invalid next size (fast):
找遍四周,知道这是的malloc /无错,但我不知道到底要修复它。任何帮助都会很棒。谢谢!
为了方便且始终符合最后一段中的规则,您应该使用惯用的malloc表达式:'ptr = malloc(N * sizeof * ptr)' –
@ eq-:是的,很好的调用。谢谢,我会添加一个例子。 –
ahh现在有道理......但我仍然得到同样的错误......我有“path [i] = malloc(strlen(buffer)+1);”在while循环可以导致这个问题? – user1436057