Передача указателя в качестве параметра, использование памяти - PullRequest
0 голосов
/ 15 июня 2019

У меня вопрос по поводу указателей.

В чем разница между этими двумя вариантами, когда речь идет об использовании памяти.Я пробовал оба, и ничего не изменилось, когда речь заходит о моей памяти.Я думал, что первый получит указатель на адрес выделенной памяти, а второй получит копию.

    check_ret = check_tetrimino(&grid, *curr, ind_y, ind_x);
int         check_tetrimino(char ***grid, t_tetrimino curr, int ind_y, int ind_x)

или

    check_ret = check_tetrimino(grid, *curr, ind_y, ind_x);
int         check_tetrimino(char **grid, t_tetrimino curr, int ind_y, int ind_x)

1 Ответ

1 голос
/ 15 июня 2019

Это указатель в обоих случаях. char *** - это указатель, как и char **, и оба имеют одинаковый размер:

sizeof(char**) == sizeof(char***)

Таким образом, количество байтов, скопированных для двух разных вызовов функций, одинаково в обоих случаях. Очевидно, что указатели, которые получает функция, указывают на разные вещи, но это не меняет размер параметров функции.

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