Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [c] scanf crash con il tipo stringa

    Salve!
    sto creando uno scanner e quando si esegue la scanf
    il programma va in crash

    ho creato il tipi stringa : typedef char* String;

    Nel main ho dichiarato tre variabili di tipo stringa:

    String FileInput;
    String FileOutput;
    String userinput;

    e ad un certo punto uso la scanf
    scanf("%s", FileInput);
    e poi ad un altro punto
    scanf("%s", userinput);

    il problema sicuramente è nella scanf perchè ho modificato il codice in modo tale che
    non ci siano le scanf e in loro assenza tutto funziona, ma purtroppo le scanf sono necessarie.
    Con la printf invece va tutto bene.
    Grazie!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    La scanf non c'entra nulla.

    Il problema è che utilizzi dei semplici "puntatori a stringa" ma non allochi lo spazio necessario.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    E aggiungo: "nascondere" puntatori dentro typedef è quasi sempre una pessima idea.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    ah.... la famosa calloc!!!
    grazie!

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Per concludere ... dato che già in una discussione precedente hai avuto lo stesso problema con la mancata allocazione dello spazio per le stringhe (hai usato semplici puntatori come in questo caso), direi che il problema dell'allocazione di memoria per le stringhe C è un argomento che devi decisamente studiare meglio.

    P.S. La calloc non è famosa ... non più di tante altre funzioni di libreria del C ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    risolto con la malloc!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.