incompréhensible c++

incompréhensible c++ - C++ - Programmation

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

Reply

Marsh Posté le 04-12-2004 à 00:49:02   

Reply

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


Message édité par Lam's le 04-12-2004 à 01:04:03
Reply

Marsh Posté le 04-12-2004 à 01:28:40    

tu t'auto-exploit ?

Reply

Marsh Posté le 04-12-2004 à 02:12:13    

Ca serait censé afficher quoi ton truc ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 04-12-2004 à 11:45:52    

"test" sans planter je suppose.

Reply

Marsh Posté le 04-12-2004 à 11:58:08    

squall2022 a écrit :


char esp[256][256][256];


t'as pas l'impression d'exploser ta pile là ? [:petrus75]
 
edit: [:benou_grilled]


Message édité par Harkonnen le 04-12-2004 à 11:58:40
Reply

Marsh Posté le 04-12-2004 à 12:02:06    

[:forummp3]  

Harkonnen a écrit :

t'as pas l'impression d'exploser ta pile là ? [:petrus75]
 
edit: [:benou_grilled]



---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
Reply

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, ... ?

Reply

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)

Reply

Marsh Posté le 04-12-2004 à 20:14:13    

Déclare le avant le main en global.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed