View Full Version : strutture e array
sto sistemando i sorgenti di un mio vecchio programma per renderlo un pò più leggibile.
volevo mettere alcuni parametri in una struct.
tra i vari parametri ho alcuni array che però non mi lascia inizializzare....
per la precisione mi dice
gal.cpp:67: error: incompatible types in assignment of `const char[8]' to `
char[20]'
sulla linea
impostazioni.colore_sfondo = "#00008b";
che ho dichiarato dentro la struttura come
char colore_sfondo[20];
dove sbaglio?
ciao!
Nn puoi assegnare la stringa in quel modo... Devi usare strcpy...
le stringhe si assegnano tramite strcpy()
Quindi dovresti fare:
strcpy (impostazioni.colore_sfondo, "#00008b");
Bye
Ragazzi le stringhe sono array di oggetti... non si possono assegnare come fareste in VBScript! Vanno esaminate una posizione alla volta, o con apposite funzioni (che non fanno altro che considerare un elemento alla volta). ;)
si, avevo immaginato di dover usare strcpy, però non capisco perchè se l'assegnazione la faccio a un array fuori della struttura il compilatore non mi dà errori e il programma funziona correttamente... :wtf: :D
ciao
Perchè la fai in questo modo:
char pippo[] = "ciao";
Non è un'assegnazione, ma una inizializzazione...
Se fai:
char pippo[20];
pippo = "ciao";
allora è sbagliato comunque e se funziona è solo fortuna...
fabio_tarantino
11-05-2004, 14:48
A volte dipende anche dal compilatore che usi
Originariamente inviato da fabio_tarantino
A volte dipende anche dal compilatore che usi
Mmmhhh...direi di no... Può funzionare lì per lì, ma a lungo andare può creare sicuramente problemi...
Lo standard impone che non possa succedere una cosa del genere...
fabio_tarantino
11-05-2004, 15:15
Originariamente inviato da cionci
Mmmhhh...direi di no... Può funzionare lì per lì, ma a lungo andare può creare sicuramente problemi...
Lo standard impone che non possa succedere una cosa del genere...
Non è detto che tutti i compilatori aderiscano allo standard ANSI...
e di compilatori "c" ce ne sono una marea.
Se vedi ad esempio cosa è successo nel corso degli anni con il pascal! (addirittura il compilatore borland pascal 7 (e non l'object pascal), accettava dichiarazioni di tipo OO!...
Vabbè, ma è comunque meglio evitare una cosa del genere...
fabio_tarantino
11-05-2004, 15:41
Originariamente inviato da cionci
Vabbè, ma è comunque meglio evitare una cosa del genere...
...aggiungerei "come la peste"
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.