Poniteur, quel Pointage ::)

Résolu
DrCrow Messages postés 416 Statut Membre -  
DrCrow Messages postés 416 Statut Membre -
Salut.
Bon, voici le rapport: :p
j'ai des question a popos d'un code. [C++]. surtout avec les pointeur
//-----------------------------------
void fonct();
int main()
{
int choix;
cin>>choix;
switch(choix)
{
case 1:
for(int i=0;i<10;i++)fonct();break;
}
}
void fonct()
{
int *var = new int;
cout<<"Called!! :"<<var<<endl;
}
//----------------------------------------
ceci n'est qu'un code remplaçant mon code originale, il a l meme principe.
donc, comme je disait, dans la lecture du for. que ce passe t'il au juste.
*Création de Dix pointeur qui pointe sur la meme adresse?
*Création de Dix pointeur qui pointe sur différente adresses?
*et aussi, Si c'est le 2eme cas, comment manipuler chaque adresse créer pour modifer sa valeur.
Merci de m'éclarcir un peu, et de me doNné la bonne définition ::)
crdlt,
le Codeur Confus. :$$$

3 réponses

  1. loupius Messages postés 789 Statut Membre 148
     
    Création de Dix pointeur qui pointe sur différente adresses?
    - Oui, et on peut même préciser: dix pointeurs qui pointent sur 10 adresses différentes.
    comment manipuler chaque adresse créer pour modifer sa valeur.
    - Une fois sorti de la fonction, c'est impossible car la fonction ne retourne rien; 'var' devient donc inaccessible mais reste jusqu'à la fin du programme.
    int main()
    - Doit retourner une valeur entière.
    Bonne continuation.
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      - Doit retourner une valeur entière.
      Meme si c'est plus clair, ce n'est pas nécessairement obligatoire en C++ ;-))).
      0
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Bonjour,
    A priori les pointeurs pointeront sur des adresses différentes. Il n'y a aucune raison que ce soit à des mêmes adresses. Ceci dit, il se peut que le compilateur te renvoie la même place puisqu'elle sera désallouée à la fin de la fonction. Mais encore faut-il ne pas oublier de désallouer avec delete.

    Et pour modifier sa valeur : *var=5; par exemple.
    Mais tu ne pourras plus accéder à la valeur après.

    Cdlt,
    0
  3. DrCrow Messages postés 416 Statut Membre 19
     
    mmm, je vois.. ^^
    Donc, une fois le for() terminée (précisement la fonct() ), les adresse sont inaccessible o_O.
    occupe de la mémoire inutilement. ^^
    ben, en tous les cas, merci pour tous. je vais trouver une autre soluce. ^^
    ou sinon, la création d'un tableau avec des allocation dynamique de ses élément.
    disons que var est un tableau. puis creer des élement du tableau avec des Allocation.D, et à la fin, la fonction retourne un pointeur sur le tableau, qui contient les élement créer dinamiquement.
    sa peux marcher? ^^'
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Oui, ça marchera ;-))).
      0
      1. DrCrow Messages postés 416 Statut Membre 19 > fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Oké Merci ^^
        0