Я пытаюсь вернуть 4 указателя, которые хранятся в другом указателе от функции в C, но я получаю ошибку сегментации. Кто-нибудь знает, как это сделать?Возврат нескольких указателей из функции
Вот так я пытался сделать это:
//declaration of 5 pointers (int * ptr0, float * ptr1, ..., int * ptr4)
int * function()
{
int * ptr;
ptr = malloc(sizeof(int)*4);
float * ptr1;
ptr1 = malloc(sizeof(float)*4);
float * ptr2;
ptr2 = malloc(sizeof(float)*4);
float * ptr3;
ptr3 = malloc(sizeof(float)*4);
int * ptr4;
ptr4 = malloc(sizeof(int)*4);
retunr ptr;
}
ptr0 = function();
ptr1 = ptr0[0];
ptr2 = ptr0[1];
//and so on...
Хорошо, я изменил свою программу, но теперь я не могу писать указатели больше. Я знаю, что это действительно «глупый» вопрос, но я действительно не знаю. Может кто-нибудь помочь?
, если вы хотите вернуть несколько значений, вы можете вернуть структуру или вернуть их через список параметров – iedoc
Пожалуйста, покажите весь код, включая декларации. – s7amuser
Возможный дубликат: http://stackoverflow.com/questions/9144516/out-parameters-in-c –