Как определить глобальную матрицу символов? - PullRequest
0 голосов
/ 13 июня 2019

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

char descr[6][20];

descr[0][] = "name0";
descr[1][] = "name1";
descr[2][] = "name2";
descr[3][] = "name3";
descr[4][] = "name4";
descr[5][] = "name5";

при компиляции я получаю следующую ошибку:

../../include/header1.h:56:1: warning: data definition has no type or storage class
     descr[0][] = "name0";
../../include/header1.h:56:1: warning: type defaults to ‘int’ in declaration of ‘descr’ [-Wimplicit-int]
../../include/header1.h:56:1: warning: ISO C forbids zero-size array ‘descr’ [-Wpedantic]
../../include/header1.h:56:1: error: array type has incomplete element type ‘int[]’

В чем проблема?Я пользуюсь с89

1 Ответ

3 голосов
/ 13 июня 2019

Вы можете инициализировать ваш descr

char descr[6][20] = {
    "name0",
    "name1",
    "name2",
    "name3",
    "name4",
    "name5", /* you may leave the last comma out */
};

Эта инициализация не (обычно) входит в заголовочный файл.

Если вы не хотите инициализировать и предпочитаете более поздние назначения (как в исходном коде), используйте strcpy.

char descr[6][20];
strcpy(descr[0], "name0");
/* ... */

Опять же, этот код не предназначен для заголовочного файла.

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