bastet1978
Messages postés54Date d'inscriptionlundi 29 septembre 2003StatutMembreDernière intervention 4 décembre 2005 14 févr. 2005 à 11:54
Bha voila ca continue :(
J'ouvre plusieur fichiers en lecture avec ma fonction ouvrir() -qui
marche bien- et je me retrouve avec une erreur de memoire : l'adresse
ne peut pas etre ecrite.
J'ais ouvert en lecture puis ferme un fichier, l'ouverture de l'autre
fichier n'a pas pose de probleme. Mais si je le laisse ouvert alors il
y a un probleme. Quelqu'un peut me dire pourquoi?
steve_clamage
Messages postés475Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention11 août 20065 14 févr. 2005 à 20:11
tu ne devrais pas t'inquietter, les pointeurs en langage C n'ont rien
de complexe, c'est juste qu'il faut savoir quelques bases la dessus.
Un pointeur est une variable qui contient l'adresse (souvent virtuelle, mais ne t'en occupe pas) d'une autre variable.
il faut connaître 2 opérateurs unaires ( op<operande>):
<li>l'opérateur * , qui permet de déférencer un pointeur, c'est à
dire de retourner la valeur de la variable pointée par le pointeur.</li>
<li>l'opérateur & (address of) qui retourne l'adresse de la variable sur laquelle il s'applique.</li>
En application:
int n = 5; /* un entier */
int *p = &n; /* un pointeur sur entier p initialisé avec l'adresse de n (grace à l'opérateur &) */
p *p <valeur de n, c'est à dire 5>
au niveau des types:
n est de type int
&n est de type int* (pointeur constant)
p est de type int*
*p est de type int (puisque c'est la valeur de la variable de type int pointée par p)
&p est de type int** (pointeur constant)
un cas d'utilisation: faire en sorte qu'une fonction puisse modifier un de ses paramètres
int f(int a); /* f ne peux pas modifier "a" car en C les paramètres sont toujours passés aux fonctions pas copie */
la solution, plutot que de passer la valeur de a, c'est de passer sont adresse (qui est de type int*).
int f(int *p)
{
*p = 5; /* l'opérateur * permet d'acceder à la valeur */
blue_storm
Messages postés5Date d'inscriptionlundi 19 avril 2004StatutMembreDernière intervention27 février 2005 27 févr. 2005 à 11:14
Salut, j'ai un petit problème en c++.
Iterator est un pointeur vers un Item.
FileSystem est une classe dans laquelle est comprise la classe Item.
FileSystem est un friendclass de Item mais je n'arrive pas à prendre l'adresse de la variable _name de mon objet.