Использование структуры для создания таблицы типов данных

#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);