[Tech] Nuova domanda di C
Franco Bagnoli
bagnoli@dma.unifi.it
Mer 9 Giu 2004 10:09:03 CEST
On Wed, 9 Jun 2004, Valerio Montagnani wrote:
> 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!!!!!!!
se penso che da quest'anno ai miei ingegneri non insegnano pių il C al
primo anno e l'hanno sostituito con matlab!!!
>
> 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.
> float **features;
> features=(float **)malloc(size*sizeof(float*)*200*sizeof(float*));
scusate se intervengo, ma mi sembra di capire che tu vuoi una matrice di
size righe per 200 colonne di puntatori. quindi hai bisogno di
size*200*sizeof(float*) locazioni. Mi sembra che tu abbia un sizeof di
troppo.
> 2. Una volta allocata, bisogna metterci dentro i valori.
> Io ho sempre fatto con dei cicli for, ma ora sono nel pallone.
credo che ti convenga definire una macro, tipo
#define FEATURES(row,col) features[(row)*200+(col)]
cosė puoi lavorare pių facilmente
for (i=0; i<size, i++) {
for (j=0; j<200; j++) {
FEATURES(i,j) = ...
}
}
un po' alla matlab, insomma ;)
--
Franco Bagnoli (franchino) <bagnoli@dma.unifi.it>
virtual location: Dipartimento di Energetica "S. Stecco"
ultra-virtual affiliation: Centro Dinamiche Complesse (CSDC-Firenze)
real location: Dip. Matematica Applicata "G. Sansone", Universita' Firenze,
Via S. Marta, 3 I-50139 Firenze, Italy. Tel. +39 0554796422, fax: +39 055471787
Maggiori informazioni sulla lista
flug-tech