[Tech] Nuova domanda di C

Marco Ermini markoer@markoer.org
Mer 9 Giu 2004 12:06:34 CEST


Valerio Montagnani disse:
> On Wed, 9 Jun 2004 09:27:15 +0200 (CEST)
> "Marco Ermini" <markoer@markoer.org> wrote:
>
> Ciao Marco.  Ancora non mi riesce bene di capire i puntatori. Non riesco a
> levarmi dalla testa la programmazione con Matlab e mischio tutto.
> Risultato: un bel casino!!!!!!!
>
> 1. Ho bisogno di allocare una matrice in maniera dinamica, perchè a priori
> non posso sapere quante righe possa avere. Il numero delle colonne è
> fisso: 200.
>
> Mi sembra di capire, anche grazie all'aiuto di Simone, che allocando la
> matrice così, è più giusto (e molto più semplice):
>
> float **features;
> features=(float **)malloc(size*sizeof(float*)*200*sizeof(float*));

Attenzione, il metodo ed il programma che ti ha suggerito Simone puoi
evitarteli, sono una complicazione inutile /se/ una delle colonne è già
definita. Basta che dichiari una cosa del tipo

float *features[200];

poi in un ciclo for da 0 a 199 allochi le righe.

Se già conosci una delle dimensioni della matrice la cosa in C viene molto
meglio, come è spiegato nel K&R che ancora una volta ti suggerisco...
oppure puoi usare le STL del C++.

Magari i suggerimenti con programma accluso da parte di Simone NON
buttarli via... tienili comunque da parte che non si sa mai ;-) la
prossima volta potresti non conoscere alcuna dimensione ;-)


> 2. Una volta allocata, bisogna metterci dentro i valori.
> Io ho sempre fatto con dei cicli for, ma ora sono nel pallone.

Il problema non è il modo, il for va bene, il problema è che non allocavi
correttamente... chissà dove li scrivevi quei valori ;-)


Ciao.
-- 
Marco Ermini
http://www.markoer.org
Dubium sapientiae initium. (Descartes)
<< This message is for the designated recipient only and may contain
privileged or confidential information. If you have received it in
error, please notify the sender immediately and delete the original.
Any other use of the email by you is prohibited. >>



Maggiori informazioni sulla lista flug-tech