Salve,
sono nuovo del forum e non li frequento molto, quindi scusate se faccio qualche errore.
Ho un problema con un programma in C.
questo è il codice:
codice:
int dim,i;
char *s=NULL;
char d[100];
puts("inserisci grnadezza della stringa");
scanf("%d",&dim);
s=(char *)malloc((dim*sizeof(char))+1);
puts("inserisci stringa");
scanf("%s",s);
puts(s);
puts("inserire d");
gets(d);
printf("%s",d);
free(s);
system("PAUSE");
return 0; }
dopo aver visualizzato correttamente la stringa s, viene visualizzato "inserire d" e dopo di che il programma termina senza rispettare il gets() successivo. questo accade solo se effettuo allocazione dinamica della memoria. Se non la effettuo tutto procede nel modo esatto.
Inoltre se inserisco gets(s), al posto di scanf("%s",s), il programma non mi fa immettere la stringa s e salta alla richiesta della stringa d.
Mi scuso ancora se ho commesso qualche errore nel postare il problema.
Grazie in anticipo.