Tableau statique de taille importante -> seg fault

vinc1008881 Messages postés 257 Date d'inscription dimanche 22 août 2004 Statut Membre Dernière intervention 29 septembre 2010 - 18 juil. 2010 à 20:15
cptpingu Messages postés 3839 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 29 juin 2024 - 19 juil. 2010 à 09:56
Bonjour à tous,


Je rencontre un problème pour le moins bizarre concernant des tableaux statique de "grande" taille en 3D.

Voilà deux codes :

double f[100][100][30];
cout << f; //fonctionne

double f[100][100][300];
cout << f; //fonctionne pas : erreur de segmentation

je suis donc pour le moins perplexe...qu'il n'arrive pas à allouer la mémoire va encore, mais qu'il n'arrive pas à afficher le pointeur, là...
Je compile avec gcc sans aucun flag sur une machine linux possédant assez de mémoire.

Je vous remercie pour les réponses

2 réponses

Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
19 juil. 2010 à 08:58
Salut
Il faut passer à l'allocation dynamique de la mémoire pour les gros tableaux.
A+


____________________________________________________________________________
Logiciel en traitement de l'image gratuit et open source.
cptpingu Messages postés 3839 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 29 juin 2024 124
19 juil. 2010 à 09:56
C'est normal. Ton programme aurait aussi planté, si tu avais essayé d'afficher f[0][0][0]. Tu n'as pas assez de mémoire et toutes opérations sur ton tableau peut provoquer une erreur.
Comme l'a dit Pistol_Pete, dès le moment ou tu as besoin de beaucoup de mémoire, tu dois le faire en dynamique. Qui plus est, en C++, il existe plein de conteneur déjà disponible (std::vector, std::list, ...), et il y en a aussi dans boost. C'est donc très rare en C++, d'utiliser ce genre de tableau.

PS: Évite les using namespace std, voir: http://0217021.free.fr/portfolio/axel.berardino/articles/bon-usage-using-namespace

________________________________________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Rejoignez-nous