Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    152

    [C] metodo che ritorna un stinga

    Ciao ho un piccolo problema ho cercato nel forum ma non ho mai trovato una soluzione o un esempio adeguato al mio caso
    ho definito un array di char chiamato string e ho creato un semplice metodo cosi definito
    codice:
    string setString(){   
       string s;     
     scanf("%s",s);   
       return s;               <---- errore 
      }
    come faccio il ritorno di una stringa?
    ho provato a far tornare il puntatore ad un carattere... ma mi da sempre errore
    qualcuno mi può dare una mano?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,461
    Devi allocare la stringa dinamicamente all'interno della funzione e restituire il valore del puntatore.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    152
    perdonami non ho praticità con i termini...non ho capito

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,461
    Utilizza un puntatore e alloca dinamicamente la memoria con la malloc ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    Originariamente inviato da keykode20
    perdonami non ho praticità con i termini...non ho capito
    Significa che di default, la macchina alloca memoria per la tua stringa dentro lo stack e la cancella quando la funzione finisce. Per far si che rimanga in memoria devi allocarlo tu esplicitamente nell'heap tramite una chiamata a malloc(), che ti restituira un puntatore a quell'area di memoria.
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  6. #6
    L'alternativa classica è farsi passare dal chiamante il buffer in cui scrivere e le sue dimensioni e scrivere lì dentro.
    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 © 2024 vBulletin Solutions, Inc. All rights reserved.