Surcharge pile, variable global

Résolu
Utilisateur anonyme - 11 janv. 2007 à 19:02
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 12 janv. 2007 à 00:09
Bonjour,

J'ai un projet basique, des fonctions, des procedure, des talbeaux, des .c et des .h !
 
Je déclare un tableau int carte[][LARGEURPIXEL] dans la fonction "jeu" qui appartient a jeu.c, donc elle est déclarer en local !

Alors si le tableau, en vue de penser a l'avenir du programme, donc d'avoir un niveau de 4000*4000, si le tableau est déclarer en local, la pile d'execution va être surcharger a mort et booom plantage...

Donc pour cela il faut le declarer en global dans le .h (du coup le .h contient les prototypes des fonctions .c et le tableau).

Mais je n'ai pas compris ce que cela changer le fait de la déclarer en global ou en local pour la pile d'execution...?

J'espere avoir était clair, et si non ca prouve que je ne connais pas ce domine et me donner un max d'info sur ca, merci d'avance

3 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
11 janv. 2007 à 19:18
C'est très simple: les variables globales ne sont pas stockées dans la pile, mais dans le segment de données

_____________________________________
Un éditeur de ressources gratuit pour Windows
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
12 janv. 2007 à 00:09
Une déclaration globale évite les passages de param, non négligeable si on a besoin de perfs, question de choix.

ciao...
BruNews, MVP VC++
3
rrk275 Messages postés 540 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 1 octobre 2007 2
11 janv. 2007 à 23:26
malloc ou new ne peuvent ils pas résoudre ton problème en evitant les variables globales?
une carte de 4000*4000 o_O un fort joli jeu  !!

Louis
0
Rejoignez-nous