Bonjour,
Pour expliquer:
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 char** split_data(char* cache,int bounds) { char** parts=NULL; int i=0,j=0,len=0; len=strlen(cache); if(bounds<=0||len==0){return NULL;} if(bounds>0&&len>0){parts=(char**)HeapAlloc(GetProcessHeap(),(HEAP_NO_SERIALIZE|HEAP_ZERO_MEMORY),sizeof(char*)*bounds);} if(!parts){error(9,hwnd_main);} parts[0]=cache; for(i=0;i<=len;i++) { if(cache[i]==SEP) { if(j==bounds) { cache[i]=0; break; } else { j++; parts[j]=&cache[i+1]; cache[i]=0; } } } return parts; }
cache parameter = "Jim~Maria~George~Mike~"
SEP = `~`
bound = 4
Cette fonction doit retourner parts de type char** avec:
parts[0] = "Jim"
parts[1] = "Maria"
parts[2] = "George"
parts[3] = "Mike"
La chose etonante est que, quand j'execute mon application en clickant sur le boutton "debug" de Visual Studio, ma fonction fonctionne parfaitement, tansdis que j'execute mon application, soit en debug soit en release, mon application plante:
Une fenetre de visual studio aparait, intitulee "Just-in-Time debugger" (j'ai Visual studio en anglais"
Le contenu de cette fenetre:
"An unhandled win32 exception occured in nom_de_l'application.exe [3916]
Merci
Partager