Задать вопрос
@Gagatyn
Самоучка

Как написать указатель на двумерный массив?

Здравствуйте! Подскажите пожалуйста.
Почему Clion не хочет компилировать:
int main() {
    int a[5][5], i, j, c = 1, **p;
    for(i = 0; i < 5; i++) {
        for(j = 0; j < 5; j++) {
            a[i][j] = c++;
            printf("|%.2d| ", a[i][j]);
        } puts("");
    }
   **p = a;  //<-------------- в чем ошибкаааааа??
    printf("%d\n", *(*(p + 2) + 3));
    return 0;
}
  • Вопрос задан
  • 1429 просмотров
Подписаться Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Академия Codeby
    Курс «Анализ защищенности инфраструктуры на основе технологий Active Directory»
    4 месяца
    Далее
  • Академия Codeby
    Курс «Цифровая криминалистика и реагирование на инциденты ОС Linux (DFIR)»
    14 недель
    Далее
Решения вопроса 1
@res2001
Developer, ex-admin
В вашем случае достаточно:
int *p;
p = (int*)a;

Или если с двойным указателем, то так:
p = &a;
Но дальше в printf у вас все равно будет ошибка.

Двойной указатель обычно нужен для создания двумерных массивов типа "хребет". В случае обычного (плоского) массива, как у вас, хватает и обычного указателя, не зависимо от количества размерностей.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы