Понимание массива указателей - PullRequest
2 голосов
/ 14 января 2020

Я делаю что-то вроде этого;

int main()
{
    int *b[2], j;
    for (j = 0; j < 2; j++)
    {
        b[j] = (int *)malloc(12 * sizeof(int));
    } 
    return 0;
}

Скажите, пожалуйста, что на самом деле означает эта инструкция? И как я могу передать этот массив указателей в функцию для доступа к таким значениям, как *(B[0]+1),*(B[1]+1) et c?

1 Ответ

2 голосов
/ 14 января 2020
int main(void)
{
    int *b[2], j; // initialization of an array of pointers to integers (size = 2)
    for (j = 0; j < 2; j++) // for each of the pointers 
    {
        b[j] = malloc(12 * sizeof (int)); // allocate some space = 12 times size of integer in bytes (usually 4)
    } 
    return 0;
}

Если вы хотите передать этот массив функции, вы можете просто передать b

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