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

    Ritornare una stringa

    char funzione () {
    char s[10];
    int i;
    for (i=0;i<10;i++)
    s[i]='x';
    return *s;
    }

    printf("%s",funzione());

    Questa istruzione stampa "xxxxxxxxxx" giusto?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No ... quella funzione restituisce un char e non un puntatore a char.

    E anche se lo facesse, non deve restituire un puntatore ad un dato allocato al suo interno in quel modo perche' all'uscita s non esiste piu'.

    P.S. E l'altra discussione?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    No, potrebbe stampare 'x' come 'xxxxxxxxxx' come mandare in crash il programma, visto che dici alla printf che le fornisci una stringa e invece le fornisci un singolo carattere; le stringhe non sono singoli char, ma array di char, e non possono essere restituite in maniera così semplice da una funzione.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Quindi come posso ottenere lo stesso risultato?
    @oregon: se risolvo questo problema ho risolto anche la discussione di prima

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da starcraftworld
    Quindi come posso ottenere lo stesso risultato?
    Devi allocare dinamicamente la stringa (con la malloc) e restituire il puntatore ...

    @oregon: se risolvo questo problema ho risolto anche la discussione di prima
    Non avevo avuto piu' risposte ...

    P.S. Ma tu da quanto programmi con il C?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Ho iniziato 5 anni fa ma da 3 anni non lo uso più spesso.
    Come uso la malloc?

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da starcraftworld
    Come uso la malloc?
    http://www.cplusplus.com/reference/c...ib/malloc.html
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.