|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
|
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 Codice:
gal.cpp:67: error: incompatible types in assignment of `const char[8]' to ` char[20]' Codice:
impostazioni.colore_sfondo = "#00008b"; Codice:
char colore_sfondo[20]; ciao! |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Nn puoi assegnare la stringa in quel modo... Devi usare strcpy...
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jul 2002
Città: Roma
Messaggi: 806
|
le stringhe si assegnano tramite strcpy()
Quindi dovresti fare: strcpy (impostazioni.colore_sfondo, "#00008b"); Bye |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: May 2003
Città: Rimini
Messaggi: 2279
|
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).
![]()
__________________
Gigabyte 965P-DS3 ¤ E6600@400*8 ¤ Scythe Ninja Plus Rev.B ¤ Ram 4GB ¤ HD SSD Crucial M4 128GB
Gainward 4850 Golden Sample ¤ Antec NEO 550HE ¤ CM Centurion 534 ¤ Dell Ultrasharp U2312HM Notebook Asus N551JW ¤ i7-4750HQ ¤ nVidia 960M 4GB ¤ 16GB DDR3 ¤ SSD Intel 850EVO 500GB |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
|
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...
![]() ![]() ciao |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
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... |
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Nov 2002
Messaggi: 160
|
A volte dipende anche dal compilatore che usi
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Lo standard impone che non possa succedere una cosa del genere... |
|
![]() |
![]() |
![]() |
#9 | |
Member
Iscritto dal: Nov 2002
Messaggi: 160
|
Quote:
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!... |
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Vabbè, ma è comunque meglio evitare una cosa del genere...
|
![]() |
![]() |
![]() |
#11 | |
Member
Iscritto dal: Nov 2002
Messaggi: 160
|
Quote:
|
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:56.