incompréhensible c++ - C++ - Programmation
Marsh Posté le 04-12-2004 à 00:56:09
16 Mo de pile, c'est trop gros (même en modifiant la variable du compilo qui va bien, c'est pas raisonnable).
Essaye de déplacer ton "esp" hors du main.
Ou mieux: alloue dynamiquement la mémoire (avec new).
Ou encore mieux: essaye d'utiliser une lib pour gérer des matrices.
edit : recyclage : http://forum.hardware.fr/hardwaref [...] 0028-1.htm
Marsh Posté le 04-12-2004 à 02:12:13
ReplyMarsh Posté le 04-12-2004 à 11:58:08
squall2022 a écrit : |
t'as pas l'impression d'exploser ta pile là ?
edit:
Marsh Posté le 04-12-2004 à 12:02:06
Harkonnen a écrit : t'as pas l'impression d'exploser ta pile là ? |
Marsh Posté le 04-12-2004 à 14:56:04
ok les gars, comment allouer ce tableau dynamiquement avec des new ? Et c'est quoi la différence entre new, malloc, ... ?
Marsh Posté le 04-12-2004 à 15:58:34
pour faire super-court:
malloc/free => C (allocation)
new / delete => C++ (allocation avec construction/destruction si y'a)
Marsh Posté le 04-12-2004 à 20:14:13
Reply
Marsh Posté le 04-12-2004 à 00:49:02
#include<iostream>
using namespace std;
int main(int argc,char* argv[])
{
char esp[256][256][256];
cout << "test" << endl;
}
Un truc de fou : quand j'exécute le code ci-dessus j'ai un "Segmentation fault". Si je vire le "cout", plus de problème, bizarre, non ?
Si je laisse le "cout" :
- Si j'enlève une dimension au tableau, plus de problème.
- Si je garde les trois dimensions et que je mets 5 pour la dernière, pas de problème non plus.
- ET avec 256, problème !
Quelqu'un a t il deja été confronté a ce pb ?
Merci
Squall