Salut
J'ai une classe CObjet qui contient un int*. Dans mon programme je remplie ce int* et j'alloue dynamiquement la mémoire avec realloc et avec cette fonction (je stocke des coordonnées de point d'une image):
Ca marche très bien mais ca foire quand il y a trop de valeur à insérer dans le tableau (vers 12000 int). Il met en mode debug "Unhandled exception in X.exe : acces violation" et se plante après le realloc de trop.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 void CObjet::Add(int* point) { p = (int *)realloc(p, (nb_elt*2+2)*sizeof(int)); *(p+(nb_elt*2)) = *point; *(p+(nb_elt*2)+1) = *(point+1); nb_elt++; }
C'est le pointeur p retourné par realloc qui vaut NULL, mais je ne comprend pas pourquoi !? Je n'ai quand même pas atteind la taille limite de mémoire ?
Merci d'avance
[Balises CODE rajoutées par Loulou24, merci d'y penser à l'avenir]
Partager