DOMANDA di nuovo tabelle in C: la dimensione dell'array dinamico, come.

Pubblicità
quindi anche quel ragionamento è sbagliato. Allora faccio prima a trovare una soluzione da qualcuno. E provare a capirla. ma sulla rete si trova di peggio rispetto al mio codice.
 
per array fisso intendevo che la malloc produce un puntatore variabile intero.
int *ptr;
che ha come indirizzo di memoria l'inizio dell'array creato con la malloc
C:
int array[3*5];
//quindi
ptr = &array[0];

//pertanto con ptr posso ciclare array.
for(i = 0; i < 3*5; i++ )
printf("%d", ptr[i] );

quindi la frase "array semplice perchè int array[15] non è fatto a puntatori. ma array semplice"
queste sono le mie certezze. accetto le critiche e mi metto a ristudiarli. dopo che avrò studiato ne riparliamo. Ora direi solo cose cattive al riguardo. :(
 
produce un "puntatore variabile intero."

Che vuol dire ?

un puntatore e' un puntatore, ovvero un offset in memoria, immaginati un grande set di cassetti di un armadio, numerati.
Puoi puntare a qualsiasi cosa vuoi, senza bisogno di creare sempre esplicitamente variabili puntatori

&array[5]

e' un puntatore che punta al cassetto 5.
 
Niente non si puo discutere :)

Per puntatore variabile intero intendo la variabile puntatore. Si puo benissimo farla puntare all inizio di un array.

int *ptr. È variabile di tipo puntatore che memorizza con operatore unario & indirizzo di un altra variabile anche dell inizio di un array.

I miei problemi sono altri. Sono riuscito nel rendere dinamico array di interi.
Dovro rivedere il funzionamento del doppio puntatore.

Non continuo a discutere perche ricevo solo commenti negativi. Ce di certo un motivo ma. Mi rivedo la teoria e mi esprimeró meglio.

Inviato da BLN-L21 tramite App ufficiale di Tom\'s Hardware Italia Forum
 
Suvvia non te la devi prendere.

I puntatori sono a mio avviso la parte piu difficile da comprendere
bene del C, a mio avviso servono anni di pratica per capirli a fondo.

Se il programma funziona, va gia bene. Il passo dopo e'
cercare di scriverlo a regola d'arte.

Hai montagne di codice opensource nella rete, roba scritta bene,
per imparare.

Un commento positivo e' lasciare stare tutti i termini accademici e
provare a capire le cose in maniera semplice o aggiustare un po il tuo cocdie,
poi postalo per intero, non a spezzoni.

Hai linux ?

man malloc malloc(nmemb * size); long *ptr = (long *)malloc(5 * sizeof(long));

Se funziona, installa valgrind

Codice:
valgrind tuaapp

Esci con ctrl+c e vedi se hai perdite.
 
...
Non continuo a discutere perche ricevo solo commenti negativi. ...
No, i nostri commenti sono “costruttivi”, c’è una bella differenza.
Ti stiamo facendo notare gli errori, e cosa puoi fare per migliorare.
Uno dei problemi è che, come dici tu, continui a pubblicare codice incasinato che non succederebbe se invece tu ti prendessi una pausa e ti mettessi a studiare e fare esercizi più semplici. Come io dissi all’inizio questo argomento è ostico, uno dei più ostici del linguaggio C (uno dei motivi per cui i puntatori stanno sparendo nei linguaggi moderni). E anzi stiamo parlando più di un argomento qui, in quanto puntatori e allocazione dinamica NON sono sinonimi. E abbiamo solo accennato ai memory leak (di cui il tuo codice è pieno).
 
farei prima utilizzando delle librerie. ma nessun ha saputo consigliarmi una libreria che costruisca tabelle in C. Torno a studiare. ci risentiamo.
 
Se nessuno ti ha consigliato la libreria giusta forse non
e' chiaro quello che vuoi fare.

Se vuoi imparare il C, allora le librerie scrivitele solo, molto
meglio che usare roba pronta.

c++ e le STL arrivano anche per rendere semplici e veloci molte cose

std::vector<long> v;

v.push_back(value);
(resize/erase)


ecco il tuo array che si allunga e si rimpicciolisce come vuoi.
 
grazie. non la cerco in c++. solo in c. Il c++ non vorrei studiarlo come nemmeno il java. Forse il C#. Se ce qualcosa in C quindi.
se cerco vector in c qualcosa trovo. provo a seguire questo codice:
 
Ultima modifica:
C in schedine embedded e microcontrollori e' dappertutto. i il 99 % di Linux e' in C. None' che e' poco usato, ma usato in un certo settore. E' una specializzazione come un altra.

A zabi piace il C, "a lui gli piace" :)

Dunque zabi tieni duro, perche' il C richiede pratica.Puoi anche comprarti un arduino, o meglio qualcosa basato su cortex m (stm32) e lavorare un po in C su microcontrollori, cosi' ti rendi conto meglio della potenza e portabilita' del C.
 
Non mi va di cambiare.
eh, beato te! se vuoi fare il programmatore e non rientri in uno dei settori specifici che lo richiedono conoscere solo il C sarà un handicap, uno sguardo a qualche altro linguaggio lo dovresti dare. Insomma, io sono d'accoro con "W il C" ma attenzione ad autolimitarti
 
Pubblicità
Pubblicità
Indietro
Top