Bonjour,
D'habitude, je galère déjà avec les tableaux de pointeurs, alors maintenant que j'utilise une matrice de pointeurs, je patauge totalement :s
J'essaie de créer une matrice possédant 5 colonnes et dont le nombre de ligne augmente quand le besoin se fait sentir. Voici ce que cela donne en code :
Lorsque j'exécute le code, j'ai droit à un segmentation fault (core dumped). Apparemment, je gère mal un élément de la mémoire :s Quelqu'un pourrait-il m'aider svp ?
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 void add_line(uint *numLine, TTrio **h_InputKey, const uint limit){ (*numLine)++; h_InputKey = (TTrio **)realloc(h_InputKey, *numLine * sizeof(TTrio*)); h_InputKey[(*numLine)-1] = (TTrio *) malloc (limit*sizeof(TTrio)); } int main(int argc, char** argv){ TTrio **h_InputKey; const uint arrayLength = argc > 1 ? atoi(argv[1]) : 1048576 ; const uint limit = argc > 2 ? atoi(argv[2]) : 5; uint numLine = 0; for(uint i = 0; i<arrayLength;i++){ if(i%limit == 0) add_line(&numLine, h_InputKey,limit); h_InputKey[i/limit][i%limit].idx = i; h_InputKey[i/limit][i%limit].val = i; printf("TTrio CPU [%d][%d] : idx : %8x val : %8x \n", i/limit, i%limit, h_InputKey[i/limit][i%limit].idx, h_InputKey[i/limit][i%limit].val); } for(uint i = 0; i < numLine; i++){ free(h_InputKey[i]); } free(h_InputKey); }
Merci !!
Partager