Как выделить память для указателя на указатель в функции - PullRequest
0 голосов
/ 28 мая 2019

Я хочу выделить память для указателя char * в указателе char ** при выполнении этого в функции, что я делаю неправильно?

int main(void)
{
    char** ar = NULL;

    inti(&ar);
    getchar();
    return 0;
}
void inti(char*** x)
{

    *x = (char**)calloc(sizeof(char*), 4);
}

и я хочу отправить ячейку в х другой функции, которая будет выделять память для массива символов, как я могу выполнить функцию продолжения?

1 Ответ

0 голосов
/ 28 мая 2019

Могу ли я порекомендовать вырезать среднего человека и сделать следующее?(Кроме того, я полагаю, что ваши аргументы calloc () задом наперед).

char** inti() {
    char** c = calloc(4, sizeof(char*))

    for (int i = 0; i < 4; i++) {
        c[i] = malloc(/* length of string */);
    }

    return c;
}

int main(void) {
    char** ptrptr = inti();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...