Voila je présente mon projet brievement :
C'est un programme qui est censé ouvrir un fichier d'une taille assez conséquente ( 20 mo environ )
Plusieurs allocations en mémoire sont alors éffectuées. Je commence à allouer un buffer de la taille du fichier en mémoire pour procéder au décryptage. Ensuite, je fait appel à plusieurs procédures de chargement des informations qui transfert ca dans une structure qui contient toutes les variables utilisées ( 120 - 130 au total ), cependant lors de chaque procédure, je fais une allocation en mémoire de ma structure. Lorsque toutes les procédures ont été réalisées, je free la mémoire du buffer contenant les données du fichier, j'affiche les informations que contient le fichier, je free lles données de toutes les structures et je quitte.
Le problème est que, je ne sais pas pourquoi, ni la méthode avec malloc() ni celle de new MaStruct[] ne veut m'allouer ma mémoire nécessaire, c'est à dire approximativement 40 mo au total, il se bloque à environ 11 mo en arretant le chargement mais en restant en mémoire...
Pourtant après quelques tests, il veut bien allouer 120mo sans probleme ( certes le test les allouer en une seule fois ) donc je ne vois pas le problème, sauf si cela vient du fait qu'il y a plusieurs allocations :/
Extrait du code qui foire :
World.ClanCount = LoadLong(pData);
printf("Number of Clans : %i \n",World.ClanCount);
if(World.ClanCount > 0)
{
World.Clans = new WDAClan [World.ClanCount];
for (i=0;i<World.ClanCount;i++)
{
World.Clans[i] = LoadClan(pData);
}
}
Si vous avez des solutions, je suis tout houïe ( ou quelque chose comme ca )
Amicalement,
The Destiny