begin process at 2012 05 29 23:28:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Liberation de la memoire - tableau dynamique a plusieurs dimensions


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Liberation de la memoire - tableau dynamique a plusieurs dimensions

mardi 4 mai 2004 à 15:12:16 | Liberation de la memoire - tableau dynamique a plusieurs dimensions

playmo420

Salut
J'ai un petit probleme : j'utilise des tableaux a plusieurs dimensions, mais lorsque je veux liberer la memoire (dans le destructeur de la classe), des erreurs "Debud assertion failed" se produisent... (j'utilise VC++ 6) voila la fonction qui cree les tableaux, puis le destructeur :


void GASchedulingGenome::initialiseArrays() {

int i,j,nbOperations(getNbOperations());

schedule= new int *[5];
for (i = 0; i < 5; i++) schedule[i]= new int [nbOperations];


lookup= new int **[nbJobs];

for (i = 0; i < nbJobs; i++)
{
lookup[i]= new int *[nbOperations];
for (j = 0; j < nbOperations; j++) lookup[i][j]= new int [2];
}
}





GASchedulingGenome::~GASchedulingGenome()
{
int i,j,nbOperations(getNbOperations());

//delete schedule;
for(i=0;i<5;++i) delete schedule[i];
delete schedule;

//delete lookup
for(i=0;i<nbJobs;++i) for(j=0;j<nbOperations;++j) delete lookup[i][j];
delete lookup;
}

Si vous avez une idee de ce qui va pas...
mardi 4 mai 2004 à 18:39:45 | Re : Liberation de la memoire - tableau dynamique a plusieurs dimensions

ymca2003

des delete[] pour les tableaux créés avec new[].
mercredi 5 mai 2004 à 09:39:45 | Re : Liberation de la memoire - tableau dynamique a plusieurs dimensions

playmo420

J'avais essaye aussi (me semblais bien me rappeller d'un truc comme ca) mais ca ne marchait pas non plus...
mercredi 5 mai 2004 à 11:41:21 | Re : Liberation de la memoire - tableau dynamique a plusieurs dimensions

ymca2003

ce qui est possible aussi, c'est que pendant l'utilisation tu écrit en dehors des bornes du tableau et que tu écrases des données relatives à la gestion mémoire. dans ton code, il faut vérifier à chaque accès les indices passés.
mercredi 5 mai 2004 à 12:07:30 | Re : Liberation de la memoire - tableau dynamique a plusieurs dimensions

playmo420

Je vais regarder mais ca m'etonnerait, j'avais bien fait attention a ca...
mercredi 5 mai 2004 à 12:13:23 | Re : Liberation de la memoire - tableau dynamique a plusieurs dimensions

ymca2003

//delete lookup
for(i=0;i<nbJobs;++i)
{
for(j=0;j<nbOperations;++j)
{
delete[] lookup[i][j];
}
delete[] lookup[i];
}
delete[] lookup;

mercredi 5 mai 2004 à 12:32:37 | Re : Liberation de la memoire - tableau dynamique a plusieurs dimensions

playmo420

Toujours pas...
En fait ce qui est etrange c'est qu'un simple "delete[] lookup[0][0];" dans le destructeur provoque l'erreur...

J'y connais pas grand chose en gestion de la memoire, mais peut etre que le message d'erreur te dira qqchose :
"....
Expression : _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
..."
mercredi 5 mai 2004 à 17:46:56 | Re : Liberation de la memoire - tableau dynamique a plusieurs dimensions

ymca2003

c'est typique d'une écriture en dehors des bornes.
jeudi 6 mai 2004 à 09:37:45 | Re : Liberation de la memoire - tableau dynamique a plusieurs dimensions

playmo420

Ok, je vais me replonger dedans alors...
Merci
jeudi 6 mai 2004 à 10:50:05 | Re : Liberation de la memoire - tableau dynamique a plusieurs dimensions

ymca2003

ce qui est possible aussi c'est que ça soit une autre variable qui te fasse planter lookup (genre une chaîne trop courte qui écrase ce qui a après, en l'occurence lookup).


Cette discussion est classée dans : int, for, delete, nboperations, lookup


Répondre à ce message

Sujets en rapport avec ce message

c++ algo [ par altay ] L'analyste programmeur a 3 dimensionest ce que quelqu'un pourrait me faire l'algo de ce code merci d'avance :#pragma hdrstop#include #include algo C++ [ par altay ] L'analyste programmeur a 3 dimensionest ce que quelqu'un pourrait me faire l'algo de ce code merci d'avance :#pragma hdrstop#include #include C ANSI allocation dynamique de tableau [ par pedu ] Ce petit pro beug en sortie, pourquoi et que faire ?#include #include int (*pi)[1][1]; /* pointeur sur un tableau d'entiers */void main(void){ unsi Problem Affichage de mon Tableau [ par Orezza ] salut à tous, j'ai un blem à l'affichage du tableau. l'utilisateur parametre son tableau, c lui qui l'initilize mais j'arrive pas à afficher apres le New et Delete [ par Tyroflan ] juste une questionsi j'ai ceci : int *p1;...main(){int pipi;cin >> pipi;p1 = new int [pipi];...delete[pipi] p1; ou bien delete[] p1;}MAISje procède POINTEUR aye aye aye [ par djkill55 ] quelqun peut m expliquer pk ce programe ne marche pa svp...???le but c de remplir une matrice [3][3]a l aide des pointeur, la fct initializ est celle Création de 2 tableaux dynamik à 2D [ par flopflopp ] Bonjour, je voudrais soumettre un petit problème en C++, j'ai une simple fonction qui crée un tableau dynamique à 2 dimensions, le rempli avec des 1 e pb avec delete c++ [ par djl ] je cree un tableau d'objets dynObjet** objets;objets = new Objet*[l];for(int i=0;icomment on le detruit?car je fait cafor(int i=0;idelete[] objets;e petit probleme de pause [ par sozer2 ] Bonjour je suis débutant en C++ et j'ai un ptit problemeJe souhaite faire une pause sous linux mais la fonction system("pause"); ne marche que sous wi


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,777 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales