Buon pomeriggio a tutti, ho cominciato da poco a studiare il linguaggio C e trovo una difficoltà per me al momento insormontabile nello scambiare due stringhe formate da una sola parola ciascuna senza caratteri particolari
Il codice seguente non da alcun errore di compilazione ma al momento dell'esecuzione le due parole vengono stampate soltanto che risultano combinazioni strane che non riesco a spiegare.
Per essere più chiaro se immetto da tastiera le parole:
Marco Andrea
dovrei ottenere:
Andrea Marco
ma ciò che spunta è:
Andrmarcea e Marcea
Come è possibile una cosa del genere? Non ci dormo sopra
Spero che qualcuno più esperto di me possa trovare cosa non va in questo codice elementare.codice:#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]){ struct studenti{ char *nome; }studente[2]; char *temp; temp = malloc(50*sizeof(char)); scanf("%s",&studente[1].nome); scanf("%s",&studente[2].nome); temp = studente[1].nome; studente[1].nome = studente[2].nome; studente[2].nome = temp; printf("\n\n%20s %20s\n\n",&studente[1].nome,&studente[2].nome); system("PAUSE"); return 0; }