C - Создание подфункции для перераспределения размера массива
У меня проблема с указателями. Я прочитал более 30 сообщений на эту тему, и ни одна из них не соответствует моим настройкам. Вот что я пытаюсь сделать:
void doSomething(myStruct **myList)
{
resizeMyList(myList,5);
myList[0] = '42';
myList[1] = '43'; // ERRORS OUT OF MEMORY
}
void resizeMyList(myStruct **theArray,int size)
{
myStruct *new_ptr = realloc(*theArray,(size * sizeof myStruct));
if(new_ptr)
*theArray = new_ptr;
else
printf("died");
}
После выполнения моей функции изменения размера myList не может получить новый указатель. Что я делаю неправильно?
1 ответ
Решение
Ты сделаешь
myList[0] = ...
но myList
это двойной указатель, поэтому он должен быть
(*myList)[0] = ...
Кроме того, вы пытаетесь назначить многосимвольные литералы для структуры.