Poniteur, quel Pointage ::)

Résolu/Fermé
DrCrow Messages postés 387 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 20 août 2014 - 6 févr. 2010 à 22:43
DrCrow Messages postés 387 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 20 août 2014 - 6 févr. 2010 à 23:32
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 dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
6 févr. 2010 à 23:05
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
6 févr. 2010 à 23:24
- 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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
6 févr. 2010 à 23:10
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 lundi 9 novembre 2009 Statut Membre Dernière intervention 20 août 2014 19
6 févr. 2010 à 23:18
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
6 févr. 2010 à 23:26
Oui, ça marchera ;-))).
0
DrCrow Messages postés 387 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 20 août 2014 19 > fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022
6 févr. 2010 à 23:32
Oké Merci ^^
0