Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - [GCC] warning: function returns address of local variable
Forum - C/C++ - [GCC] warning: function returns address of local variable - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
tasx (Dev Team)
Expert


Messaggi: 439
Iscritto: 15/12/2008

Segnala al moderatore
Postato alle 18:47
Domenica, 03/03/2013
Testo quotato

Postato originariamente da TheDarkJuster:

perchè stando alla dichiarazione dovresti ritornare un puntatore, e invece ritorni un array



ehm puntatore e array sono la stessa cosa in c...

------------

quello che il compilatore ti dice é: occhio perché la funzione che hai scritto ritorna un puntatore ad una variabile che verrá deallocata una volta usciti dalla funzione stessa quindi il suo valore perde senso e potrebbe portare ad un comportamento anomalo del programma(seg fault, memory leak, etc....)...

PM Quote
Avatar
Serginho153 (Normal User)
Newbie


Messaggi: 4
Iscritto: 03/03/2013

Segnala al moderatore
Postato alle 18:47
Domenica, 03/03/2013
Mi dispiace. Sono nuovo nella compilazione, non l'ho mai usato pascal. Pensavo che bastasse mettere un puntatore al primo elemento di un array per stamparlo tutto. Poichè poi erano concatenati li stampava di fila. Io ho semplicemente tentato di applicare i concetti da poco acquisiti. Per esempio so che a[10] e *a+10 indicano la stessa cosa. Quindi l'array non è altro che un puntatore con un indice. Da quello che so sono equivalenti. Mi dispiace di averti fatto perdere tempo.

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 19:14
Domenica, 03/03/2013
Non è proprio così, puntatore e array sono su due memorie diverse quindi non possono essere la stessa cosa.

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 22:16
Domenica, 03/03/2013
Non e' vero, posso avere un puntatore allocato su entrambe (heap e stack), cosi' come posso avere un puntatore allocato su entrambe... la differenza e' concettuale. Un puntatore e' una variabile contenente un'indirizzo, un'array e' una collezione di dati accessibili da un indice. Il fatto che un puntatore puo' contenere l'indirizzo di un'array non vuol dire che puntatore === array.

Ultima modifica effettuata da pierotofy il 03/03/2013 alle 22:16


Il mio blog: https://piero.dev
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 14:55
Lunedì, 04/03/2013
Diciamo che un puntatore e un array li si può "trattare" come una cosa simile

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo