Rocky75
Expert
Vous avez déjà vu un new qui retourne 0 alors qu'on cherche à allouer 300 octets?
Moi, j'ai eu ça et je ne comprends pas pourquoi... Je comprendrais qu'un new retourne 0 si la mémoire était saturée au point que Windows ne puisse plus allouer le bloc mémoire, mais pour 300 octets, je ne vois pas.
Quelques détails:
- J'ai démarré mon développement avec plusieurs 'new', dont 1 qui n'allouait que 3 int, du genre: myTable = new int[num];
(où num vaut 3)
Ca marchait très bien.
- J'ai ensuite enrichi mon code avec des appels à l'API Windows concernant les mixers des différents canaux sonores, des trucs des la lib WinMM.lib. C'est là que le new int[3] s'est mis à me retourner 0, à ma grande surprise.
- En revenant en arrière (sans l'appel aux fonctions multimédia de Windows), le new marchait à nouveau.
J'ai finalement contourné le problème en créant un tableau statique, mais ce n'est pas très élégant.
Alors si quelqu'un peut m'expliquer, ça me rendrait bien service.
Merci d'avance,
Eric
Moi, j'ai eu ça et je ne comprends pas pourquoi... Je comprendrais qu'un new retourne 0 si la mémoire était saturée au point que Windows ne puisse plus allouer le bloc mémoire, mais pour 300 octets, je ne vois pas.
Quelques détails:
- J'ai démarré mon développement avec plusieurs 'new', dont 1 qui n'allouait que 3 int, du genre: myTable = new int[num];
(où num vaut 3)
Ca marchait très bien.
- J'ai ensuite enrichi mon code avec des appels à l'API Windows concernant les mixers des différents canaux sonores, des trucs des la lib WinMM.lib. C'est là que le new int[3] s'est mis à me retourner 0, à ma grande surprise.
- En revenant en arrière (sans l'appel aux fonctions multimédia de Windows), le new marchait à nouveau.
J'ai finalement contourné le problème en créant un tableau statique, mais ce n'est pas très élégant.
Alors si quelqu'un peut m'expliquer, ça me rendrait bien service.
Merci d'avance,
Eric