我在释放用于将另一个数组的大小加倍的临时结构数组时遇到问题。释放原始数组似乎没有任何问题。
void foo(StruName **structName,i nt *size)
{
...
StruName *temp_array = (StruName*) malloc(*size * 2 * sizeof(StruName));
for (i = 0; i < *size; i++)
temp_array[i] = (*original_array)[i];
free(*original_array);
*original_array = temp_array;
free(*temp_array);
我使用 g++ -Wall 得到以下错误
error: cannot convert ‘StruName’ to ‘void*’ for argument ‘1’ to ‘void free(void*)’
有什么想法可能导致这种情况吗?如果我离开 free(*temp_array); 总之,程序编译并运行良好。免费(临时数组);导致段错误