Allocation dynamique d'une matrice en c++

Fermé
abir - 26 avril 2011 à 22:31
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 26 avril 2011 à 22:47
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 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
26 avril 2011 à 22:47
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