Accueil > Forum > > > > allocation memoire qui echoue, mais pourquoi??
allocation memoire qui echoue, mais pourquoi??
mercredi 13 mai 2009 à 14:36:17 |
allocation memoire qui echoue, mais pourquoi??

Seomaz
|
Bonjour, je pense que le titre est assez explicite...mais je détaille quand même: lors d'une allocation dynamique (avec l'operateur new), je me retrouve avec un pointeur NULL, alors qu'il me reste plein de place en RAM... class Bidule { ... } int main() { ... Bidule * ptr = new Bidule(); //et la, ptr = =NULL... ... } Je n'arrive vraiment pas à saisir pourquoi new a retourné un pointeur NULL, alors que mon processus prend moins de 20Mo en mémoire et qu'il en reste presque 500Mo. Je suis sous windows 2000, et je travaille sous Visual C++ 6.0. D'avance merci pour votre aide.
|
|
mercredi 13 mai 2009 à 14:43:11 |
Re : allocation memoire qui echoue, mais pourquoi??

Pistol_Pete
|
Salut Peux tu nous montrer le constructeur par défaut de ton programme. A+ ____________________________________________________________________________ Mon site internet : [ Lien ]
|
|
mercredi 13 mai 2009 à 14:53:20 |
Re : allocation memoire qui echoue, mais pourquoi??

Seomaz
|
bonjour Pistol_Pete. Le constructeur est très gros, mais il marche. En fait la classe Bidule appartient à une dll utilisée depuis longtemps (je n'ai pas le droit de la modifier, ni de la divulguer d'ailleurs). Je ne pense pas que le problème vienne du constructeur parceque des "new Bidule()", yen a déjà un gros paquet dans le code...et tous passent. Encore une fois je ne pense pas non plus que ça soit un problème de mémoire dispo (yen a encore plein!).
Mais je ne comprend toujours pas pourquoi new me renvoie un pointeur NULL.... En plus je ne peut pas m'en passer. Car le pointeur est retourné à une autre fonction, donc si je met un Bidule statique dont je retourne l'adresse, il n'existera plus!
P.S: avant que quelqu'un me propose de changer de compilo, je ne peut pas. C'est visual C++ 6.0, un point c'est tout (sinon je peut chercher du travail ailleurs...)
|
|
mercredi 13 mai 2009 à 15:24:46 |
Re : allocation memoire qui echoue, mais pourquoi??

fregolo52
|
si tu as le code de la dll.debug le constructeur pour voir où ca coince.
|
|
mercredi 13 mai 2009 à 15:35:41 |
Re : allocation memoire qui echoue, mais pourquoi??

Seomaz
|
fregolo52, j'ai déjà débuggé une bonne centaine de fois je pense. Il ne passe même pas dans le constructeur, l'allocation n'ayant pas réussi... (sinon j'aurai mis "problème de constructeur" dans le titre.)
la question est de savoir quelles sont les causes qui peuvent provoquer l'échec d'une allocation?
sur la msdn il ne disent rien. Ils disent juste que l'opérateur new peut renvoyer NULL, mais ils ne disent pas dans quels cas!!
|
|
mercredi 13 mai 2009 à 15:45:24 |
Re : allocation memoire qui echoue, mais pourquoi??

fregolo52
|
encore une question bête, cette dll est déjà utilisée, donc comment elle est utilisée dans les autres programmes ? As-tu comparé les setting des projets ? Des warning à la compil ou link sont peut-etre intéressants à exploiter.
Pour test : Si tu as Visual .NET qq part, essaie de convertir ton projet, les compilo .NET sont plus restrictifs et permettent de voir certaines grossièretés que VC6 laisse passer.
|
|
mercredi 13 mai 2009 à 15:54:38 |
Re : allocation memoire qui echoue, mais pourquoi??

Seomaz
|
aucune différence dans les settings. La même opération d'allocation trois lignes plus haut fonctionne à merveille. C'est là que ça devient incompréhensible! sinon, pour visual .NET, non. Et comme je l'ai déjà dit, JE N'AI PAS LE DROIT de changer de compilo, ça fait partie des exigences de mon client.
|
|
mercredi 13 mai 2009 à 16:43:55 |
Re : allocation memoire qui echoue, mais pourquoi??

fregolo52
|
aie aie aie !! ca me dit quelque chose !! c'est déjà eu ce genre de pb avec WSAStartup qui échouait suivant sa position dans le code. vu que c'était pour un outil de simulation j'ai pas approfondi.  bon courage.
|
|
mercredi 13 mai 2009 à 21:43:10 |
Re : allocation memoire qui echoue, mais pourquoi??

juju12
|
Réponse acceptée !
Est-ce-qu'une allocation d'un autre type juste avant ce que tu veux faire, et/ou après, réussit? du genre :
unsigned *test=new unsigned[2*sizeof(Bidule)]; Bidule*ptr=new Bidule; unsigned *test2=new unsigned[2*sizeof(Bidule)];
si ça ne marche pas, probablement corruption de la mémoire => vérification de non-dépassement de tous les tableaux, chaînes de caractères, etc utilisés.
|
|
jeudi 14 mai 2009 à 02:22:24 |
Re : allocation memoire qui echoue, mais pourquoi??

beg0
|
Question bete: t'as regarde ce que te renvoyer GetLastError(), avant et apres ton alloc ?
|
|
Cette discussion est classée dans : pointeur, allocation, memoire, bidule, echoue
Répondre à ce message
Sujets en rapport avec ce message
Allocation memoire [ par youga ]
Bonjour je fais un programme de filtrage d'images en C sur VisualDSP++. J'ai donc une matrice d'entrée et je dois absolument pouvoir determiner l'add
allocation efficace de memoire [ par gildaso ]
Salut à tous! Alors voila je suis en licence d'informatique et j'ai un projet à rendre pour la mi-mai.Ce projet consiste à implementer en c un system
Pointeur et liberation de memoire [ par Darkneon ]
Salut, J'avais un probleme apres que je liberais de la memoire allouer a un pointeur, le message "Null pointer assignment" m'apparaisait toujours. Le
[ c ] Allocation memoire [ par Titi035 ]
Bonjour, Je recherche quel serait le meilleur allocateur mémoire pour mon appli embarquée. J'ai 10 Mo de RAM + flash à gérer dans un décodeur
Prob Allocation dynamique de strcture complexe (contenant des pointeurs) [ par thono42 ]
Bonjour, J'ai un petit souci peut être pouvez vous m'aider: J'essaie d'effectuer une allocation dynamique pour le pointeur se trouvnat dans cette stru
Ficher Memoire Pointeur [ par maladedede ]
Bonjour je voudrais savoir comment mettre un fichier en memoire vive et avoir un pointeur vers l'adresse memoire ou commence le fichier :)Je connais l
fonction malloc [ par Trollien ]
Salut,j'aurai une question concernant le fonctionnement de l'allocation de memoire en c.Si j'alloue de la memoire avec la fonction malloc(...), est ce
allocation de memoire [ par tcok ]
salut a tousje voudrais juste savoir quelle est la difference entre LocalAlloc et GlobalAlloc car je dois resever un gros espace en memoire et je me d
projet allocation efficace de memoire [ par gildaso ]
Salut à tous! Alors voila je suis en licence d'informatique et j'ai un projet à rendre pour la mi-mai.Ce projet consiste à implementer en c un system
Structures en C / Win2k / Dev-Cpp [ par BaptX ]
Bonjour à tous,J'aurai quelques questions à vous poser en ce qui concerne le passage de structures en C. Comme c'est un peu comme les pointeurs, je me
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|