Realloc触发了一个断点
它触发了一个断点。 Realloc在重新分配时会复制所有数据,因此它一定复制了“我是一名大学生”。为什么会发生这种错误 在那之后。在释放内存部分。我没试过,但一定是出了什么问题。我还没弄明白。Realloc触发了一个断点,c,memory-leaks,realloc,C,Memory Leaks,Realloc,它触发了一个断点。 Realloc在重新分配时会复制所有数据,因此它一定复制了“我是一名大学生”。为什么会发生这种错误 在那之后。在释放内存部分。我没试过,但一定是出了什么问题。我还没弄明白。 感谢您帮助我您使用的realloc错误: 这是错误的 temp = (char**)realloc(a, n * sizeof(char*)); 您真的确定要为a[i]分配(strlen(pc)+1)*sizeof(wchar\u t)字节吗?你真的在和我打交道吗 wchar\t这里是字符串吗?
感谢您帮助我您使用的
realloc
错误:
这是错误的
temp = (char**)realloc(a, n * sizeof(char*));
您真的确定要为a[i]
分配(strlen(pc)+1)*sizeof(wchar\u t)
字节吗?你真的在和我打交道吗
wchar\t
这里是字符串吗?在这种情况下,最好将a
声明为wchar\u t**a
相反
另请注意:
temp = (char**)realloc(a, n * sizeof(char*));
temp = (char**)realloc(a, n * sizeof(char*));
if (temp)
{
a = temp;
free(temp); // <-- wrong, you cannot do that
temp = NULL;
}
...
temp = realloc(a, n * sizeof *a);
if(temp == NULL)
{
// DO the error handling
for(int k = 0; k < n; ++k)
free(a[i]);
free(a);
break; // or return
}
a = temp;
a[n - 1] = malloc(strlen(pc) + 1);
...