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++ - Vettori dinamici in C
Forum - C/C++ - Vettori dinamici in C

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Cesaruz (Normal User)
Pro


Messaggi: 83
Iscritto: 25/10/2007

Segnala al moderatore
Postato alle 20:28
Lunedì, 16/03/2009
Ciao a tutti...ho iniziato a vedere i vettori dinamici in C...
Purtroppo però sul manualetto che ho è spiegato male e forse troppo brevemente...
Mi parla della malloc e della calloc per l'allocazione della memoria ma poi non mi spiega come gestire questo spazio... come ad esempio caricare un vettore di interi o altro...
Quindi come funzionano i vettori dinamici???
Grazie anticipatamentea tutti:k:

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 20:35
Lunedì, 16/03/2009
La cosa migliore e' comprare un buon libro di base al posto del manualetto.

L'uso completo dei vettori dinamici in C non e' una cosa che si possa mettere in una singola risposta in un forum.

Un forum non si dovrebbe sostituire ai libri ma servire solamente per aggirare ostacoli circoscritti e ben definiti (IMHO)

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 9:18
Martedì, 17/03/2009

eh come ha ben detto the programmer non è un argomento da poco.
Il mio consiglio è andarti a comprare un manuale come si deve, fidati che è un buon investimento. Se vuoi iniziare dal web vatti a vedere le reference di malloc calloc e free, sicuramente ci sono degli esempi di base sui quali puoi farti un'idea. :)

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 21:18
Martedì, 17/03/2009


Il mio blog: https://piero.dev
PM Quote
Avatar
Cesaruz (Normal User)
Pro


Messaggi: 83
Iscritto: 25/10/2007

Segnala al moderatore
Postato alle 15:58
Mercoledì, 18/03/2009
Ok avete ragione tutti...
Ora vedo se reisco ad acquistarne uno...
Grazie.:k:

PM Quote
Avatar
oretovalley (Normal User)
Pro


Messaggi: 109
Iscritto: 12/04/2009

Segnala al moderatore
Postato alle 20:38
Domenica, 12/04/2009
ciao, cmq per quanto riguarda i vettori dinamici in C per allocare un vettore dinamicamente basta fare semplicemente:

nome_variabile_da_allocare_dinamicamente = (tipo*)malloc(grandezza_da_allocare*sizeof(tipo));

ovviamente l'allocazione viene fatta in questo modo a priori in ogni caso se ti interessa
aumentare la grandezza del vettore dovresti usare la realloc :)

Ultima modifica effettuata da oretovalley il 12/04/2009 alle 20:38
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 21:45
Domenica, 12/04/2009
Testo quotato

Postato originariamente da oretovalley:
nome_variabile_da_allocare_dinamicamente = (tipo*)malloc(grandezza_da_allocare*sizeof(tipo));



Ti volevo solamente correggere sul primo termine

nome_variabile_da_allocare_dinamicamente

in quanto non e' la variabile che allochi dinamicamente, ma uno spazio di memoria che e' puntato da quella variabile. Dovrebbe quindi essere

puntatore_allo_spazio_da_allocare_dinamicamente =

PM Quote
Avatar
oretovalley (Normal User)
Pro


Messaggi: 109
Iscritto: 12/04/2009

Segnala al moderatore
Postato alle 23:52
Domenica, 12/04/2009
si hai pienamente ragione è stata un errore mio anche perchè nella dichiarazione della variabile si mette tipo *variabile o tipo variabile[]... a mio avviso l'* rende meglio l'idea che lavoriamo con puntatori :asd:, grazie mille della correzione

PM Quote
Avatar
Dave Danuve (Normal User)
Newbie


Messaggi: 6
Iscritto: 13/04/2009

Segnala al moderatore
Postato alle 21:07
Lunedì, 13/04/2009
Vorrei precisare, se mi permettete, che il casting del puntatore restituito da malloc non è necessario, questo perché in C quando si fa l'assegnazione tra puntatori di tipo diverso viene tutto convertito nel tipo dell'operando che sta a sinistra. Ad esempio, il codice:

Codice sorgente - presumibilmente C/C++

  1. int variable = 5;
  2. void *voidPtr = &variable;
  3. int *intPtr = voidPtr;
  4.  
  5. printf("Il valore di variable è %d", *intPtr);



È corretto. In C++ invece no :\, non chiedetemi perché ma non ne ho idea, però il C ha paradossalmente sempre avuto automatismi interessanti :D.

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo