Bonjour,
Je me prend la tête sur une fonction en objective C (qui est quasi équivalente a une fonction C, je n'utilise pas d'objet, donc je me permet de poster ça ici ..)
L'idée c'est de construire un tableau de pointeur vers des caractères, la fonction permet une réalocation du tableau pour accueillir à chaque fois une nouvelle chaine. Je n'ai pas de sigfault sur le moment, par contre plus loin dans le programme oui, et c'est directement lié à cette fonction car quand je met en paramètres cette ligne dans le "else", je n'ai plus de sigFault. Idem si mon tableau de pointeur p_listCol fait une taille de un, pas de problème, dès lors que je passe à deux, j'ai de nouveau un problème plus loin.
L'appel de ma fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part *p_listCol[**p_sizeList]=(char*)arg;
La fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 char **p_listArg = NULL; int *p_sizeL = NULL; [archiver utils_addArgToList:&p_listArg withArg:"BLABLABLABLA" size:&p_sizeL]; [archiver utils_addArgToList:&p_listArg withArg:"BLOUBLOUBLOUBLOU" size:&p_sizeL]; [archiver utils_addArgToList:&p_listArg withArg:"BLOBLOBLOBLOBLOBLBOLBOLBOBLBO" size:&p_sizeL]; free(p_sizeL); free(p_listArg);
Merci d'avance pour votre aide précieuse !
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 - (void)utils_addArgToList:(char***)p_listCol withArg:(const char*)arg size:(int**)p_sizeList{ if (*p_sizeList == NULL){ printf(" SIZE LIST = NUL\n"); *p_sizeList = malloc(1*sizeof(int)); **p_sizeList=0; *p_listCol=malloc(1*sizeof(char*)); *p_listCol[**p_sizeList]=(char*)arg; printf(" SIZE LIST = %d\n",**p_sizeList); }else{ **p_sizeList += 1; *p_listCol=realloc(*p_listCol,**p_sizeList*sizeof(char*)); *p_listCol[**p_sizeList]=(char*)arg; }
Seb![]()
Partager