Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Taille du programme en fonction des variable ? [ Divers / Général ] (Mamelook)

dimanche 27 juillet 2008 à 01:22:19 | Taille du programme en fonction des variable ?

Mamelook

Bonjours, en envoyant mon programme a un de mes amis, j'ai remarqué que ce dernier (le programme) faisait 23,8 Mo, lorsque je le place dans une archive rar, l'archive mesure 20ko.
Quand je cherche dans mon programme ce qui peut être a l'origine de cette taille, (mon programme fait une centaine de ligne), je vois cette ligne :

char nfo_map[5000][5000] = {1};

Quand je remplace les 5000 par 500, le programme mesure alors 254ko...

Alors je voulais savoir si s'étai normal que les variable soit stoker dans l'exécutable (donc sur le disque dur) et pas dans la ram comme je croyais que s'étais le cas ...

Merci et a bientôt.

dimanche 27 juillet 2008 à 05:16:31 | Re : Taille du programme en fonction des variable ?

SAKingdom

Membre Club
Réponse acceptée !
Sans entrer dans les détails :
Une variable locale est placée sur la pile du programme. Cette pile est allouée par le système avant l'exécution. La variable est donc directement en mémoire.
Cependant, une variable globale est écrite dans le segment de donnée. Le segment de donnée est une des parties qui constitue le corps d'un programme. Elle est donc écrite sur le disque dur.
Cependant ne te trompe pas. Le programme doit être chargé en mémoire pour être exécuté, le segment de donnée y comprit. Les modifications sur ces variables sont bien faites en mémoire.

C++ (@++)


dimanche 27 juillet 2008 à 14:24:00 | Re : Taille du programme en fonction des variable ?

vecchio56

Administrateur CodeS-SourceS
Réponse acceptée !
Ce qui est important de noter ici, c'est que pour les déclarations de tableaux, si tu ne déclares pas tous les éléments, ils sont implicitements mis à 0. C'est pour ca que la taille de ton exécutable augmente, même si tu ne spécifies la valeur que d'un élément.
Le mieux ici est donc de déclarer sans initialiser, puis d'utiliser par exemple memset pour initialiser ton tableau.

_____________________________________
Un éditeur de ressources gratuit pour Windows


dimanche 27 juillet 2008 à 16:15:36 | Re : Taille du programme en fonction des variable ?

SAKingdom

Membre Club
Réponse acceptée !
J'ai oublié de préciser qu'il faut que la variable globale soit initialisée (tableau ou pas) dès sa déclaration pour qu'elle soit placé à même le programme. Sinon, le programme ne fait que "demander" un espace mémoire plus grand pour contenir cette variable.

C++ (@++)


dimanche 27 juillet 2008 à 20:21:23 | Re : Taille du programme en fonction des variable ?

Mamelook

Oki merci, donc c'était bien normal ^^
Encor merci et a bientot ++



Cette discussion est classé dans : fonction, taille, programme, variable, archive


Répondre à ce message

Sujets en rapport avec ce message

net use * /delete EN C++ [ par LeBobo ] Salut. J'ai un petit programme qui utilise la fonction : system(''net use * /delete'') ; Le problème est que mon programme à une interface graphique w fonction et variable [ par rodrigos ] Je suis débutant en c++ et j'ai un petit problème:J'ai fonction récurante dans mon programme que j'appelle depuis le main. Mais j'aimerai modifier une Re-utiliser une variable [ par squall51 ] J'essaie de créer un programme.J'ai du le diviser en plusieurs fonction.J'aimerai savoir si il est possible d'utiliser une variable definie dans un fo récupérer chaque bit d'une variable binaire [ par nixon666 ] BJJe me pause une question dans un programme de supervision utilisant le language C : pour ceux qui connaissent il s'agit du programme WinCC. Dans ce manipulation fichier texte [ par bencholl ] I / Utilisation de fichiers texteLe fichier "Etud_2002.don" comporte des lignes ainsi structurées (le caractère ';' est utilisé comme séparateur) : NO variable membre non static dans une fonction membre static [ par adrod ] J'ai une erreur du compilateur: Error C2597. Je suis allé sur msdn pour avoir plus de précision et ils me disent:To access the nonstatic member, you m Vérifier le bon déroulement de mon prog ds 1 TMemo [ par ivdz ] Bonjour, J'ai développé sous C++ builder 6 un programme avec une interface qui possède des TEdit, 2 boutons (Valider et Quitter) et un TMemo. Le bouto ouvrir un programme [ par Adeon ] Salut!y a t-il une fonction qui est cappable d'ouvrir un programme que l'on defini dans la fonction.Bien sure, quand je dis ouvrir, ce n'est pas dans strcat() ???? [ par supergrey ] Salut tout le monde, jai un petit probleme avec la fonction strcat() , je commence a peine un programme que deja je bloque la dessus jaimerai de l'aid pb avec variable [ par jeffise57 ] Please aidez moiJe reçoit comme arugument du fonction des variables unsigned char* et je doit passer dans une deuxième fonction les même arguments mai


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


LG KP501

Entre 9€ et 159€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,452 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.