Poniteur, quel Pointage ::)

Résolu
DrCrow Messages postés 387 Date d'inscription   Statut Membre Dernière intervention   -  
DrCrow Messages postés 387 Date d'inscription   Statut Membre Dernière intervention   -
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

loupius Messages postés 697 Date d'inscription   Statut Membre Dernière intervention   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
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
- Doit retourner une valeur entière.
Meme si c'est plus clair, ce n'est pas nécessairement obligatoire en C++ ;-))).
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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
DrCrow Messages postés 387 Date d'inscription   Statut Membre Dernière intervention   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
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Oui, ça marchera ;-))).
0
DrCrow Messages postés 387 Date d'inscription   Statut Membre Dernière intervention   19 > fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention  
 
Oké Merci ^^
0