#c #struct
Вопрос:
Я пытаюсь создать таблицу с использованием структур, структура которой содержит массив символов и логическое значение. Любой совет относительно того, что не так, был бы очень признателен!
"" static const char bar[] = "bar"; static const char foo[] = "foo"; struct listType { const char Value[]; bool successValue; }; listType test { {foo , false}, {bar , false} }; ""
Идея заключается в том, что я мог бы установить переменные в значение true в дальнейшем.
К сожалению, я получаю слишком много инициализаторов, а также фигурные скобки вокруг ошибок скалярных инициализаторов. Любая помощь, которую вы могли бы оказать, будет очень признательна!
Комментарии:
1. Массивы должны иметь размер, поэтому объявление вашей структуры недопустимо. Вы можете использовать указатели для указания на строки. Или даже лучше ( намного лучше) использовать
std::string
для всех ваших строк.2. Да, используйте
std::string
. Это дает гораздо больше гибкости и свободы.
Ответ №1:
Вы пытаетесь использовать конструктор без его объявления. Вместо этого назначьте каждое значение индивидуально. Нравится,
listType test[2]; test[0].Value = foo; test[0].successValue = false; test[1].Value = bar; test[1].successValue = false;
Обратите внимание, что назначение строки работает только для std::string
переменной типа. Для массива символов вы должны использовать функцию strcpy (). Так,
test[0].Value = foo;
Было бы,
strcpy(test[0].Value, foo);