Невозможно создать массив типа const char*
У меня есть что-то, возвращаемое как const char*, и я хотел бы сохранить это в массиве.
Я попробовал это:
const char* book[amtBooks] = "";
и получаю эту ошибку:
error: array must be initialized with a brace-enclosed initializer
@Kara, 👍1
Обсуждение1 ответ
Лучший ответ:
▲ 2
const char* book[amtBooks]
— это массив указателей.""
— это массив символов (только один символ NUL).
Вы можете инициализировать массив символов с помощью массива символов:
const char foo[] = "hello";
Вы также можете инициализировать указатель на char с помощью массива char:
const char *bar = "good bye";
Это работает благодаря функции «распада в указатель» в C и C++.
Но инициализация массива указателей массивом символов просто делает не имеет смысла. Массив указателей на char можно инициализировать как
const char *book[] = {"hello", "good bye"};
,
@Edgar Bonet
Смотрите также:
- Получение шестнадцатеричных данных с терминала
- Есть ли ограничения на размер массива в Arduino Mega 2560?
- Как получить тип данных переменной?
- Преобразование в Unix Timestamp и обратно
- Возможно ли иметь массив массивов int?
- Замена нескольких выводов pinMode() и digitalWrite() на массив
- Ошибка: invalid application of 'sizeof' to incomplete type 'int []' при попытке вычислить размер массива в библиотеке
- Инициализация массива структур
А как насчет
const char* book[amtBooks] = { NULL };
. Это инициализирует каждую книгу нулевым указателем., @Kwasmich