Bonjour j'ai un pb avec un realloc dans une fonction, le code suivant marche si je met i_nb = 2 mais pas avec i_nb = 3 :
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40 #include <stdio.h> #include <stdlib.h> static int i_ajoute(/*@out@*/ unsigned short ** p_tab, /*@out@*/ int * p_size) { int i; int i_nb = 3; int i_taille; for (i = 0; i< i_nb; i++) { (*p_size)+=1; i_taille = (*p_size) * sizeof(unsigned short); //Augmente la taille *p_tab = realloc((*p_tab),i_taille); if((*p_tab) == NULL) { printf("ERREUR: Allocation memoire\n"); return 0; } printf("Apres realloc\n"); *p_tab[(*p_size)-1] = (unsigned short)i; } return 1; } int main ( int argc, char ** argv) { unsigned short * p_tab_elt_suppr = NULL; int i_size = 0; i_ajoute(&p_tab_elt_suppr, &i_size); printf("FIN\n"); return 1; }
Partager