Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    32

    [C] Errore funzione con stringa in output

    Dovrei creare una funzione che restituisca un dato di tipo string, il programma effettivo è leggermente più complesso di questo, in questo pezzo ho isolato la parte che mi dà errore semplificando il codice.
    In pratica compare una finestra di errore che termina l'esecuzione del programma... e non riesco a capire da cosa possa dipendere forse qualche accesso errato in memoria? ma dove? Ecco il codice:
    codice:
    #include <stdio.h>
    #include <ctype.h>
    #include <stdlib.h>
    #include <string.h>
    #include "tostring.h"
    
    char tostring();
    int main ()
    { 
        printf("%s",tostring());
        
    system("pause");
    return 0;
    }
    char tostring()
    {
     strcpy(string,"stringadiprova");
     
     return string;
    }
    e il file tostring.h
    codice:
    char string[100];
    Qualche idea?


  2. #2
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Printf in quel modo chiede un char* e non un char semplice.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    32
    Quindi dovrei dichiarare string in questo modo: char *string[100] ?
    Se è così, ho già provato ma il porblema persiste

  4. #4
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    E' la funzione toString che è errata.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    32
    Originariamente inviato da XWolverineX
    E' la funzione toString che è errata.
    Cioè? potresti spiegare meglio, perfavore?

    Ho provato a modificarlo così..
    codice:
    char tostring()
    {
     strcpy(*string,"stringadiprova");
     
     return *string;
    }
    con
    codice:
    char *string[100];
    e non cambia nulla

  6. #6
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    era tutto giusto ma il tipo di ritorno della toString doveva essere un puntatore

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    32
    Originariamente inviato da Stoicenko
    era tutto giusto ma il tipo di ritorno della toString doveva essere un puntatore
    quale dici? il primo codice è corretto?

  8. #8
    No.
    codice:
    char * tostring()
    {
        /* bla bla bla */
    }
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    32
    grazie, ora funziona!

  10. #10
    Tra l'altro non capisco come sia possibile che non ti desse errori sulla return né warning sulla printf... che compilatore stai usando?
    Amaro C++, il gusto pieno dell'undefined behavior.

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.