Bonjour,
Voici l'extrait de code qui fache : :
L'erreur que je rencontre vient de la ligne : temp [i]=tmp[deb + i];
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 char* substring(char* tmp, int deb, int fin){ const int nb = (fin - deb) + 1; char* temp; if(nb>=1) temp = (char*)malloc(nb * sizeof(char)); else printf("nb est <= 1\n"); if(temp ==NULL) printf("Erreur : pointeur nul..."); int i; for(i=0;i!=(fin-deb);i++){ printf("i:%d, tmp[deb+i]:%c\n",i, tmp[deb + i]); temp [i]=tmp[deb + i]; printf("i:%d, temp[i]:%c\n",i, gnu[i]); } temp [fin - deb] = '\0'; printf("temp : %s\n", temp ); return temp ; }
Sur la console mon code d'erreur qui indique le pointeur temp a NULL s'affiche également.
J'ai recherché sur le net et malloc ne renvoi NULL que quand il n'a plus d'espace d'adressage (or ici nb = 6 dans la majorité des cas soit 6octets... et il me reste 1g de ram disponible d'après Windows).
J'ai d'autres soucis sur des allocations de chaines de caractères dans mon programme...
Je réalise ce programme sous Visual Studio 2005 sur un windows xp pro sp2 installé sur une WMware.
En vous remerciant
Voldie
Partager