[PRO*C] Allocation dynamique
bonjour, bon ben voila on m'a imposé pro*C.
j'ai un problème que je ne comprends pas.
Si je fais
Code:
1 2 3
| EXEC SQL BEGIN DECLARE SECTION;
float valeur[66];
EXEC SQL END DECLARE SECTION; |
Puis dans le main après avoir rempli mon tableau de float avec une requete
Code:
1 2 3 4 5
|
for(i=0; i<nbr_66; i++)
{
printf("valeur :%f \n", valeur[i]);
} |
J'ai bien les résultats de ma table, super...
le problème c'est que je dois connaitre la taille de mon tableau à l'avance.
J'ai donc essayé de faire un truc mais ca ne marche pas du tout.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
int main()
{
int i=0;
size_t nbr_donnees=0; //nombres de lignes récupérées lors de la requete
//connexion à la bdd que je ne mets pas pour alléger
EXEC SQL OPEN compte;
EXEC SQL FETCH compte
INTO :nbr_donnees;
EXEC SQL CLOSE compte;
//nbr_donnes prend la valeur 66 cela marche donc bien !
//allocation dynamique du tableau de float
float *derniere_valeur = malloc (sizeof (float) * nbr_donnees);
EXEC SQL OPEN tout_station;
EXEC SQL FETCH tout_station
INTO :derniere_valeur;
EXEC SQL CLOSE tout_station;
for(i=0; i<nbr_donnees; i++)
{
printf("valeur :%f \n", valeur[i]);
} |
Et là ca m'affiche n'importe quoi.... je ne comprends pas d'où cela vient.
Quelqu'un peut -il m'aider ?