Sono un programmatore C principiante, ieri ho imparato l'uso delle strutture C e la possibile applicazione di questi sulla risoluzione di problemi specifici. Tuttavia, quando stavo sperimentando il mio C IDE (Codeblocks 16.01) per apprendere questo aspetto della programmazione in C, ho riscontrato uno strano problema. Il codice è il seguente:"errore: assegnazione all'espressione con errore di tipo array" quando assegno un campo struct (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;
}
Durante la compilazione, il compilatore (GCC 4.9.3-1 in Windows) mi ha segnalato un errore che dice
"error: assignment to expression with array type error"
su istruzione
s1.name="Paolo"
s1.surname="Rossi"
while if I
data s1 = {"Paolo", "Rossi", 19};
funziona. Cosa sto sbagliando?
Hai scoperto una delle differenze tra assegnazione e inizializzazione. –
Puoi essere più specifico? grazie;) – Chief096
Puoi scrivere 's1 = (const data) {" Paolo "," Rossi ", 19};' –