У меня возникли проблемы с освобождением временного массива структур, используемых для удвоения размера другого массива. Кажется, у меня нет проблем с освобождением исходного массива.Ошибка при освобождении массива malloc'd структур
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);
Я получаю следующее сообщение об ошибке с помощью г ++ -Wall
error: cannot convert ‘StruName’ to ‘void*’ for argument ‘1’ to ‘void free(void*)’
Любые идеи, что может быть причиной этого? Если я оставлю свободное (* temp_array); в целом программа компилируется и работает нормально. бесплатно (temp_array); вызывает выдаёт ошибку сегментации
Это помогло бы, если бы вы могли опубликовать всю программу. В любом случае, склонны к ошибкам, которые я указал. Первая строка объявления функции имеет ошибки. –
К сожалению, извините за непонятность. Структурой было имя структуры typedef.Изменил его на StruName – mcallinder