Tableau resultat et boucle
Bonjour,
J'ai fait un petit programme ayant le comportement suivant:
Boucle for
Fait des calculs
Enregistre les résultat dans une table à deux dimensions
Modifie les conditions initiales
Répète
Je voudrais savoir comment faire pour enregistrer les résultats successifs de la boucle, car évidemment, pour chaque boucle les données de la précédente table sont écrasées.
Il faudrait que j'arrive à créer une table hors de la boucle et y insérer les résultats à chaque "tour", mais je ne vois pas comment faire (pour le moment, je contourne le problème en l'enregistrant dans un fichier texte avec l'option a, mais j'aimerais que le tout reste sous la forme d'une table en mémoire et pas sous forme d'un fichier).
Merci de votre aide
passing arg 1 of `Fonction' from incompatible pointer type ... SUITE ...
En fait, le même message apparait quand la Table T est créée à l'aide de malloc.
Le code suivant est identique au premier code de mon message précédent, mais T est défini à l'aide de malloc et pas seulement sous la forme T[10][10].
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
#include <stdio.h>
#include <stdlib.h>
// variables
double **T;
double **Res ;
int i,j;
int main()
{
T = malloc(10 * sizeof(double *));
if(T == NULL)
{
fprintf(stderr, "out of memory\n");
system("PAUSE");
exit(0);
}
for(i = 0; i < 10; i++)
{
T[i] = malloc(10 * sizeof(double));
if(T[i] == NULL)
{
fprintf(stderr, "out of memory\n");
system("PAUSE");
exit(0);
}
}
// ************ Initialise T *************
for (i=0; i<10; i++)
{
for (j=0; j<10; j++)
{
T[i][j] = 5;
}
}
printf("T[1][2]: %lf", T[1][2]);
//***************Fonction 1************************
double **Fonction(double mat[10][10])
{
double **ResCalc_1 ;
int i ;
ResCalc_1 = malloc(10 * sizeof(double *));
if(ResCalc_1 == NULL)
{
fprintf(stderr, "out of memory\n");
system("PAUSE");
exit(0);
}
for(i = 0; i < 10; i++)
{
ResCalc_1[i] = malloc(10 * sizeof(double));
if(ResCalc_1[i] == NULL)
{
fprintf(stderr, "out of memory\n");
system("PAUSE");
exit(0);
}
}
ResCalc_1[1][2] = mat[1][2] + 10; // Un petit calcul
return ResCalc_1 ;
}
Res = Fonction(T);
printf("resultat final [1][2] : %lf",Res[1][2]);
return(0);
} |
Bref, c'est pas si simple que ça en a l'air ... en tout cas pour moi !!
Une idée pour solutionner le problème ?