Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
E' da un po' che cerco di capire a cos'è dovuta quella che io vedo come un'anomalia, quindi provvedo subito ad inaugurare la nuova sezione.
Ho un puntatore a char che passo ad una funzione. In questa funzione alloco dinamicamente memoria con malloc, assegnando l'indirizzo ottenuto al puntatore passato. Ma all'uscita lo spazio allocato è svanito nel nulla
Mi spiego meglio con un po' di codice.
Nella funzione in cui avviene l'allocamento di memoria ho:
Ciao,
la risposta è molto semplice. Il puntatore a char viene passato per valore quindi quello che ottieni da malloc non lo vedi al di fuori della funzione. Per aggirare il problema devi passare alla funzione un puntatore a puntatore.
Giusto, è vero Prima immaginavo l'indirizzo di memoria come un oggetto "assoluto", non consideravo che l'assegnamento sarebbe rimasto locale alla funzione, nello stack, e perso all'uscita della stessa.
Pero' ora mi è sorto un altro dubbio, ovvero come accedo ad ogni cella dell'array ? Se ad esempio nella funzione eseguo un: