Создание указателя на первое значение матрицы - PullRequest
0 голосов
/ 14 марта 2012

Я пытаюсь создать указатель на начало матрицы для передачи в функцию в качестве аргумента.Вот что у меня есть:

int **p;
p = &(&matrix[0][0]);
func(p);

При этом я получаю сообщение об ошибке «lvalue требуется как унарный» & «операнд».Я предполагаю, что это просто проблема того, что у меня нет правильного синтаксиса, но, возможно, нет.Любая помощь будет принята с благодарностью.

Ответы [ 3 ]

4 голосов
/ 14 марта 2012

Ну, matrix[0] указывает на начало матрицы (хотя сам по себе это не указатель, а массив). Таким образом, следующее должно сделать это:

int* = matrix[0];
2 голосов
/ 14 марта 2012

matrix [0] [0] - это целое число, поэтому его адрес - & matrix [0] [0].То, что вы хотите, это

p = &matrix[0][0];
0 голосов
/ 14 марта 2012

Ваша функция должна ожидать параметр int [] [SIZE] или int * [SIZE], чтобы это работало.Поскольку матрицы C линеаризуются, они не могут обрабатываться как указатели на указатели.

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