Тип массива 'some_typedef_name' не может быть назначен - PullRequest
0 голосов
/ 09 марта 2020

У меня есть двумерный массив:

(in a header file)
#define N 11
typedef char adjmat[N][N];

Когда я объявляю массив в основной функции

adjmat mat[N][N];

, я могу создать массив со значениями

adjmat mat[N][N] = {{1, 1, 1},{0, 0, 0}};

и чтения значений из массива

char example = mat[0][0];

, но когда я пытаюсь присвоить значение ячейке в массиве

mat[i][j] = getchar() - '0';

, я получаю ошибку:

Array type 'adjmat' (aka 'char[11][11]') is not assignable

как я могу присвоить значение ячейкам массива?

1 Ответ

0 голосов
/ 09 марта 2020

Вы уже напечатали двумерный массив.

#include <stdio.h>

#define N 11
typedef char adjmat[N][N];


void foo()
{
    adjmat mat = {{1,2,3,}, {4,5,6,}, };

    for(int row = 0; row < N; row ++)
    {
        for(int col = 0; col < N; col++)
        {
            printf("%03d ", mat[row][col]);
        }
    printf("\n");
    }
}

int main()
{
    foo();
}

если вы объявляете

adjmat mat[N][N];

, вы объявляете двумерный массив двумерных массивов

...