Я начинающий программист C, вчера я узнал, как использовать C-структуры и возможное их применение в отношении разрешения специфические проблемы. Однако, когда я экспериментировал с моей C IDE (Codeblocks 16.01), чтобы изучить этот аспект программирования на C, я столкнулся с какой-то странной проблемой. Код состоит в следующем:«ошибка: присваивание выражению с ошибкой типа массива», когда я назначаю поле структуры (C)
#include <stdio.h>
#define N 30
typedef struct{
char name[N];
char surname[N];
int age;
} data;
int main() {
data s1;
s1.name="Paolo";
s1.surname = "Rossi";
s1.age = 19;
getchar();
return 0;
}
Во время компиляции, компилятор (GCC 4.9.3-1 под Windows) сообщил мне ошибку, которая говорит
"error: assignment to expression with array type error"
по инструкции
s1.name="Paolo"
s1.surname="Rossi"
в то время как, если я принимаю
data s1 = {"Paolo", "Rossi", 19};
это работает. Что я делаю неправильно?
Вы обнаружили одно из отличий между назначением и инициализацией. –
Можете ли вы уточнить? спасибо;) – Chief096
Вы можете написать 's1 = (const data) {" Paolo "," Rossi ", 19};' –