Allocation dynamique d'une matrice en c++

abir -  
fiddy Messages postés 11653 Statut Contributeur -
Bonjour,

j'ai ecri ce code pour charger une matrice dynamiquement mais l'exécution est fausse j'ai pas trouvé ou est l'erreur

#include <stdio.h>
#include <malloc.h>
int main()
{

double **matdonne;
int n;

printf("donner la valeur de n:");
scanf("%d", & n);

matdonne=(double**) malloc (sizeof (double*) *n);
for (i=0;i<n; i++)
matdonne[i]=(double*) malloc (sizeof (double)*2);

for(i=0;i<n;i++)
{
printf("donner fj\n");
scanf("%.0lf\n", & matdonne[i][0]);
}
for(i=0;i<n;i++)
{
printf("donner ej\n");
scanf("%.0lf\n", & matdonne[i][1]);
}

return 0;
}



1 réponse

fiddy Messages postés 11653 Statut Contributeur 1 847
 
Bonjour,

Déjà, il faudrait savoir. En C ou en C++ ?
Vu ton code, on dira que c'est du C.
Tout d'abord, ce n'est pas malloc.h qu'il faut inclure mais stdlib.h, les cast inutiles.
scanf("%.0lf\n", & matdonne[i][0]);
Non, c'est scanf("%lf",&matdonne[i][0]);

C'est bizarre, de faire deux boucles for non imbriquées. Est-ce voulu ? Ce n'est pas très propre.

Et il manque enfin les free pour libérer les ressources.

Cdlt,
0