[Tech] C e struct

Valerio Montagnani tech@vmontagnani.it
Gio 15 Lug 2004 12:27:29 CEST


Ciao a tutti.
Sono sempre dietro la questione delle struct.
Ho provato a definire un tipo per i numeri complessi tramite una struct
e vorrei che ai membri della struttura fossero associati dei valori
prelevati da un vettore. Solo che la cosa non funziona. Questo è il
codice:

typedef struct {
  float *Re;
  float *Im;
} complex;

float *dati;
int i;
complex c;

float *fvector(int size) {
  float *p;
  p=(float *)calloc(size,sizeof(float));
  if (!p) {
    printf("ERRORI\n");
    exit;
  }
  return p;
}

main() {
  dati=fvector(12);
  c.Re=fvector(6);
  c.Im=fvector(6);

  for (i=0; i<12; i++) {
    dati[i]=i;
  }

  for (i=0;i<6;i++) {
    c.Re[i]=dati[2*i];
    c.Im[i]=dati[2*i+1];
  }

  for (i=0;i<6;i++) {
    printf("%f %f\n",i,c.Re[i],c.Im[i]);
  }

  free(c.Re);
  free(c.Im);
  free(dati);
}


Dove sbaglio? non riesco a capire perchè i valori di c.Re[i] e c.Im[i]
sono tutti 0.

Grazie, Vale

-- 
Valerio Montagnani        (Lug-Account)        <tech@vmontagnani.it>
              pub 1024/C7E4BC57    sub 2048g/0E170155
Key fingerprint = D5A4 EDFC 060C 5BD6 E2DD  8252 3B67 C1EB C7E4 BC57



Maggiori informazioni sulla lista flug-tech