У меня возникли проблемы с указателями и динамическими массивами. У меня есть функция, которую я вызываю, что делает связку, как удаление элемента из динамического массива, что приводит меня к перераспределению памяти на один из этих динамических массивов. Проблема в том, что я вызываю функции внутри функций, и я не могу вернуть все мои значения в Main. Так как я не могу вернуть 2 значения, как я могу это сделать?Возвращение двух указателей на динамические массивы
structure1* register(structure1 *registerArray,structure2 *waitingList, int counter){
//Bunch of code in here
registerArray = realloc(inspecao, (counter)+1);
waitingList = eliminate(waitingList, 5, counter); //Doesn't matter what it does really
return registerArray;
}
structure1* eliminate(structure1 *arrayToEliminateFrom, int positionToEliminate, int *counter){
//The code for this doesn't matter
//All I do is eliminate an ellement and reallocate it
arrayToEliminateFrom = realloc(arrayToEliminateFrom, (*counter-1)*sizeof(structure1))
return arrayToEliminateFrom;
}
Как вы можете видеть, я не знаю, как вернуть указатель на динамический массив waitingList на Майне. Как я могу это сделать? Я искал везде. Помощь
Я не уверен, что вы просите, но любой «возвращение п значений» проблема может быть решена путем передачи указателя на п переменных быть написано. – Alex
Это не решило проблему. Я не знаю, как иметь указатель на указатель. –
Я собираюсь дать ответ на вашу реальную проблему, но 'register' на самом деле является старым атрибутом C _keyword_, таким как' extern' или 'static'. В наши дни не используется много, но все же незаконно как символ, поэтому просто переименуйте его (например, registerx или xregister или register_array). –