Каков наилучший способ выполнить следующее в C?
#include <stdio.h>
struct A
{
int x;
};
struct A createA(int x)
{
struct A a;
a.x = x;
return a;
}
struct A a = createA(42);
int main(int argc, char** argv)
{
printf("%d\n", a.x);
return 0;
}
Когда я пытаюсь скомпилировать вышеуказанный код, компилятор сообщает о следующей ошибке:
"элемент инициализации не является константой"
Плохая строка:
struct A a = createA(42);
Может кто-нибудь объяснить, что не так? Я не очень опытен в C. Спасибо!