Salve a tutti,
ho fatto questo semplice programma per l'acquisizione di due stringhe, ma non funziona:
codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void inserimento_nomi (char *nome1, char *nome2);
main()
{
char *nome1, *nome2;
inserimento_nomi (nome1, nome2);
printf("\nnome1: %s\n", nome1);
printf("\nnome2: %s\n", nome2);
return 0;
}
void inserimento_nomi (char *nome1, char *nome2)
{
/* alloco memoria per le due stringhe (max. 19 caratteri) */
nome1 = (char *) malloc (sizeof(char) * 20);
nome2 = (char *) malloc (sizeof(char) * 20);
printf("\n\n\tInserire il nome1: ");
fflush(stdin);
gets(nome1);
system("cls");
printf("\n\n\tInserire il nome2: ");
fflush(stdin);
gets(nome2);
}
Non riesco proprio a capire dove sbaglio. :master:
Facendo delle printf di prova all'interno di inserimento_nomi tutto va bene. Il problema è il risultato che ottengo al di fuori della funzione: le printf mi mandano in crash il programma.
Grazie per l'aiuto.