Salve ho un piccolo problema con il C, quando vado a scrivere nel mio programma il seguente codice:

int main(){

    char *stringa,ch;
    printf("inserisci un carattere ");
    scanf("%c",&ch);

    printf("Inserisci una stringa ");

    stringa=(char*)malloc(sizeof(strlen(stringa)));

    scanf("%s",stringa);
    ....etc

funziona correttamente, ma se invece inverto in questo modo:

int main(){

    char *stringa,ch;
    printf("Inserisci una stringa ");

    stringa=(char*)malloc(sizeof(strlen(stringa)));

    scanf("%s",stringa);

    printf("inserisci un caratteri ");

    scanf("%c",&ch);

quando eseguo il programma, mi fa scrivere la stringa ma il carattere non me lo fa scrivere, e si chiude immediatamente il programma.
Qualcuno può darmi una spiegazione a ciò?...grazie :D

chiesto 01 Apr '16, 14:41

Peppe89's gravatar image

Peppe89
30112

modificato 01 Apr '16, 18:40

enzotib's gravatar image

enzotib ♦♦
14.1k113187

Scrivi tu la prima risposta!
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×37

domanda posta: 01 Apr '16, 14:41

domanda visualizzata: 821 volte

ultimo aggiornamento: 01 Apr '16, 18:40

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.