Я не очень привык к кодированию на C++, и это, вероятно, простая проблема, что я не могу получить правильный синтаксис.C++ Array инициализации структуры
То, что я в основном пытаюсь достичь, состоит в том, что из одного метода, когда я объявляю массив структуры (размер не указан), я вызываю метод, в котором я передаю этот массив. Метод должен инициализировать значения массива. Я пытался получить простой код, но получал ошибки. Следующий фрагмент кода дает мне ошибку компиляции. Может ли кто-нибудь указать, как этого добиться?
struct ABC
{
int a;
int b;
};
void test(ABC * a)
{
a[] = {{2,3},{4,5}};
}
int main() {
ABC arr[2];
test(arr);
}
EDIT:
следующие работы, но я хотел бы инициализации работать в одной строке.
struct ABC
{
int a;
int b;
};
void test(ABC *a)
{
a[0].a = 2;
a[0].b = 3;
a[1].a = 4;
a[1].b = 5;
}
int main() {
ABC arr[2];
test(arr);
}
Если у вас есть ошибки компиляции, убедитесь, что вы включили точный текст сообщения. – crashmstr
Важный бит, чтобы узнать о тасовании массива-указателя. Когда этот массив разлагается на указатель, это указатель. Вы потеряли важную информацию: размер. – user4581301
Мне кажется странным, что вы указываете размер в основном цикле, так как используете этот размер в тестовой функции. – Chiel