Bonjour à tous,

Voici le code sur lequel je travaille et sur lequel je bloque :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
(*c)->contraintes = (double **)realloc((*c)->contraintes, sizeof(double*)*((*c)->nb_contraintes + 2));
(*c)->contraintes[((*c)->nb_contraintes)+1] = (double *)malloc(sizeof(double)*(1+(int)(*c)->fonction_economique[0]));
        (*c)->contraintes[((*c)->nb_contraintes)+1][0]=(*c)->contraintes[contrainte][0];
 
        for(i=1; i<((*c)->contraintes[contrainte][0]);i++)
        {
            //si le terme traité n'est pas le signe de la contrainte
            if(i != (int)((*c)->contraintes[contrainte][0]-2))
            {
                ((*c)->contraintes[contrainte][i]) = ((*c)->contraintes[contrainte][i]) * -1.00;
                (*c)->contraintes[((*c)->nb_contraintes)+1][i] = (*c)->contraintes[contrainte][i];
            }    
            //sinon si c'est le signe qui est traité
            else
            {
                (*c)->contraintes[contrainte][i] = -1;
                (*c)->contraintes[((*c)->nb_contraintes)+1][i] = -1;
            }    
 
        }  
 
        (*c)->nb_contraintes++;
        printf("toto\n");
        printf("test : %.f \n",(*c)->contraintes[((*c)->nb_contraintes)+1][1]);
        printf("test2 : %.f \n",(*c)->contraintes[(*c)->nb_contraintes+1][2]);
Il me fait des erreures au niveau des printf, juste apres avoir affiché toto.
le tableau (*c)->contraintes est un tableau a deux dimensions de double.
(*c)->nb_contraintes est un int.

Je veux reallouer une ligne puis remplir la derniere ligne ajoutée. Mais cela ne semble pas marcher, la premiere valeure ((*c)->contraintes[(*c)->nb_contraintes+1][0]) est remplie correctement et je peux l'afficher.
Et (*c)->fonction_economique[0] vaut 3.

Je vous remercie de toutes les réponses que vous pourrez m'apporter.

Sam