IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

etape d'exécution d'un pg en C ?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de zangaloni
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 474
    Par défaut etape d'exécution d'un pg en C ?
    Bonjour,
    j'ai besoin de comprendre
    1_comment un programme est exécuté vis a vis de la memoire ( qu'est ce qui se passe dans la partie segment de code ,segment data..etc)pour un programme en C ?
    2_en quoi se diffère le C de C++ et Java ?
    3_Etpaes d'exécution d'un programme ?

    Si vous avez une idée,ou un lien qui pourrait m'aider à rèpondre à ce genre de question .
    Merci de me le faire parvenir.
    j'ai besoin de ceci au plutard demain matin.

  2. #2
    Membre émérite
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Par défaut
    1_ C'est-à-dire ?
    Tu veux savoir qu'est-ce qu'il y a dans chaque segment de mémoire ?
    Segment de code/texte : Code
    Segment data/données : Variables statiques/globales initialisées.
    Segment bss : Variables statiques/globales non initialisées.
    Segment de tas : Mémoire utilisée par l'appel à malloc, realloc etc.
    Segment de pile : Fonctions, variables, etc. (tout ce qui est en train d'être exécuté).

    Je te dis ça à titre indicatif, mais c'est variable en fonction de l'implémentation. Ce que j'ai dis est valable pour l'architecture x86 sous Unix.

    2_ Ce sont des langages différents, chacun à son utilité. En quoi diffère une voiture, un train et un avion ?

    3_ Pas bien compris ...
    Ton programme commence, toutes tes variables son placées dans le segment de données/bss (si il y en a), ensuite on commence par le main qui sera placé dans la pile, avec les variables, les adresses de retour, le bloc d'activation etc. ensuite tous les appels de fonctions avec, pareil, les variables etc.

  3. #3
    Membre très actif Avatar de zangaloni
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 474
    Par défaut
    1_
    le segment data n'est pas divisé en deux ?une partie statique pour les var. statique et globale et une partie dynamique pour les variable décrit à l'interieur du main ?

    J'aimerais aussi avoir une idée sur les pointeur ?y a deux pointeur sur la memoire l'un sur le code et l'autre sur le sommet de la pile ?

    le Tas c'est pour l'allocation dynamique ?

    2_pour la différence j'aimerais juste savoir les grand trait qui les diffèrent

    3_ il peut ne pas y avoir de segment data ?
    je n'ai pas bien compris

  4. #4
    Membre émérite
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Par défaut
    1_ Les variables du main sont dans la pile, pas dans le data
    Bah heuu.. les pointeurs sont des variables qui pointent sur des adresses mémoires. Ils sont donc dans la pile.
    Le segment de pile évolue des adresses hautes vers les adresses basses, et le tas évolue vers les adresses hautes. Les autres segments sont fixes et sont dans les adresses basses avant le segment de tas.

    2_ Je ne connais pas les autres langages, je ne ferai donc pas de comparaison

    3_ Oui

    Encore une fois, et je le répète, ceci est entièrement dépendant de l'implémentation !

  5. #5
    Membre très actif Avatar de zangaloni
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 474
    Par défaut
    Pour les pointeurs,je parlais des pointeur qui pointeent sur la memoire.

    En tout ca merci pour vos rèponses

  6. #6
    Membre émérite
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Par défaut
    Ups petit modification, je me suis trompé
    La pile évolue vers les adresses basse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Agent sql et etape qui ne s'exécute pas
    Par Msysteme dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 17/06/2015, 12h26
  2. Réduire des etapes dans un programme a exécuté
    Par yassinebench dans le forum MATLAB
    Réponses: 6
    Dernier message: 13/04/2014, 17h06
  3. [ArchiveBuilder][JavaMail] exécution impossible...
    Par Gorthal dans le forum JBuilder
    Réponses: 7
    Dernier message: 10/01/2003, 09h12
  4. Exécution indivisible (accès conccurent)
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 3
    Dernier message: 23/07/2002, 08h09
  5. Réponses: 2
    Dernier message: 06/07/2002, 12h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo