Originariamente inviato da stefanoB
nella struttura i membri sono stati definiti come const char*:

l'assegnazione vElenco[i].campo1[x]='a'; produce ovviamente un warning: multi-character character constant;

l'assegnazione vElenco[i].campo1[x]="a"; produce l'errore invalid conversion from `const char*' to `char' perchè indicato [x]
Se hai definito i membri come const allora perchè il compilatore non ti indica che stai cercando di assegnare dei valori a delle costanti?

Vedo che fai un po' di confusione tra apici singoli e virgolette... gli apici servono per dichiarare una costante char (da assegnare ad una variabile char o per farne quello che ti pare) ed il valore che rappresenta è sempre e solo quello del carattere. Quando usi le virgolette stai indicando una stringa non un carattere, e quindi di conseguenza è sottinteso che alla fine verrà inserito un terminatore di stringa \0.
Quindi: il warning non puoi averlo ottenuto con quell'assegnazione ma piuttosto con qualcosa del tipo:
vElenco[i].campo1[x]='ab'
dove specifichi più caratteri quando dovresti indicarne solo uno, mentre l'errore di conversione da puntatore a char a char è evidentemente una causa delle virgolette: stai assegnando la stringa "a" (e non il carattere) ad un char, ma assegnare una stringa significa assegnare il puntatore al primo elemento. Da qui l'errore di conversione.