с языком.Возвращаемый тип функции - PullRequest
0 голосов
/ 16 июля 2010
?? fun()
{
   int a[3]={3,3,4};
   return &a; 
}

что может быть совместимым типом возврата.Здесь указатель указывает на массив из 3 целых чисел, а не только указатель, который указывает на массив целых чисел.Цель состоит в том, чтобы вернуть указатель на массив из 3 целых чисел.

Ответы [ 11 ]

0 голосов
/ 16 июля 2010

Если вы хотите вернуть указатель на массив, не возвращайте адрес локальных переменных. То, что вы возвращаете сюда, будет int**. Что вы хотите сделать, это выделить новый массив int и вернуть int*. Что вы хотите, вероятно, что-то вроде:

int* fun()
{
    int* a = malloc(sizeof(int) * 3);
    a[0] = 3;
    a[1] = 3;
    a[2] = 4;
    return a;
}

Затем вам нужно обязательно освободить выделенный массив позже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...