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 3835 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 1 novembre 2022 - 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 1054 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.
0
cptpingu Messages postés 3835 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 1 novembre 2022 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
0
Rejoignez-nous