Помещение значений в матрицу - PullRequest
0 голосов
/ 03 декабря 2018

После объявления матричной матрицы [2] [2] глобальной областью действия я хотел поместить в нее значения в более удобочитаемой форме.

  int matrix[line][col];

  int function() {

  matrix[0][0] = 1;
  matrix[1][0] = 2;
  ...
 }

Но вышеупомянутое не очень читабельно.Я видел, что также можно использовать:

  int matrix[line][col] = {
   {1,2},
   {3,4},
   ...
   }

, который я считаю более читабельным.Но после объявления матрицы с глобальной областью действия я не могу поместить значения (как выше) внутри нее в функцию.

      int matrix[line][col] \\ global scope with some number of lines and columns

      void function() {  \\ some function

      matrix = {
      {1,2},
      {3,4},
      ....
    }

Способ помещения значений внутри матрицы, как указано выше, не работает.

1 Ответ

0 голосов
/ 03 декабря 2018

То, что вы пытаетесь сделать, просто невозможно.Использование формы int matrix[line][col] = { {1,2}, {3,4}, ... } разрешено только во время инициализации.

Вы можете сделать что-то вроде этого:

int function() {
  int row0[] = { 1,2,3,4,5 ... };
  memcpy(matrix[0], row0, sizeof(row0));
  int row1[] = { 1,2,3,4,5 ... };
  memcpy(matrix[1], row1, sizeof(row0));
}

Если это лучше или нет, решать вам.К сожалению, эти вещи всегда будут немного неуклюжими в C.

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