Question de base C
Résolu
trinity666
-
trinity666 -
trinity666 -
bonjour
j'aimerais savoir quand on a:
int *p;
int i=3;
*p=i;
à quoi correspond la valeur de p par rapport à celle de &p
que se passe t il si on fait p++ on incremente quelle adresse?
merci
j'aimerais savoir quand on a:
int *p;
int i=3;
*p=i;
à quoi correspond la valeur de p par rapport à celle de &p
que se passe t il si on fait p++ on incremente quelle adresse?
merci
A voir également:
- Question de base C
- Base de registre - Guide
- Formules mathématiques de base - Télécharger - Études & Formations
- Formules excel de base - Guide
- Gigaset pas de base - Forum telephonie fixe
- Gigaset as470h base ✓ - Forum telephonie fixe
2 réponses
Salut,
Dejà ton code tel qu'il est contient une erreur (classique), à savoir que tu utilises le pointeur p avant de l'avoir initialisé.
Une solution possible est:
Dans ce cas de figure la valeur de p est l'adresse de la variable i et la valeur de &p est l'adresse où est stockée la valeur de p.
Si tu fais p++ tu incrémentes la valeur de p soit ici adresse de i + taille d'un entier. Après cette opération et sur un système où un entier est stocker sur 4 octets, tu auras p = adresse de i +4 octets et &p inchangée.
(Ajout): Dans l'exemple que j'ai pris le fait de faire p++ nous ramènes à un pointeur non initialisé qui pointe donc n'importe où. Sans une opération d'allocation mémoire il ne faut pas écrire dans ce pointeur.
En espérant avoir été clair ;-)
A++
Dejà ton code tel qu'il est contient une erreur (classique), à savoir que tu utilises le pointeur p avant de l'avoir initialisé.
Une solution possible est:
int *p; int i = 3; p = &i;
Dans ce cas de figure la valeur de p est l'adresse de la variable i et la valeur de &p est l'adresse où est stockée la valeur de p.
Si tu fais p++ tu incrémentes la valeur de p soit ici adresse de i + taille d'un entier. Après cette opération et sur un système où un entier est stocker sur 4 octets, tu auras p = adresse de i +4 octets et &p inchangée.
(Ajout): Dans l'exemple que j'ai pris le fait de faire p++ nous ramènes à un pointeur non initialisé qui pointe donc n'importe où. Sans une opération d'allocation mémoire il ne faut pas écrire dans ce pointeur.
En espérant avoir été clair ;-)
A++