Résolu : Pointeurs et tableau en C.

Moderator: Mod

Résolu : Pointeurs et tableau en C.

Postby HARD_SNAKE » Thu Dec 02, 2010 11:54 am

Bonjour, pourquoi on initialise pas le pointeur *ptr_tab avec l'adresse d'une variable dans ce programme ? vers qu'elle adresse il pointe ?

[code:1:d801377cd8]
#include <stdio.h>

int main(){
char *ptr_tab; /*Déclaration d'un variable pointeur */
char tab[] = "HardSnake\n"; /*Déclaration d'un tableau de caractère*/
ptr_tab = tab; /*Initialisation du pointeur*/

while(*ptr_tab){ /*Execute les instructions tant que \0 n'est pas pointé */
printf("%c", *ptr_tab++); /*Affichage de la valeur pointé*/
}

return 0; /*Fin du programme*/
}
[/code:1:d801377cd8]
Merci de votre aide.
Last edited by HARD_SNAKE on Thu Dec 02, 2010 4:26 pm, edited 2 times in total.
HARD_SNAKE
Projets
 
Posts: 4
Joined: Thu Dec 02, 2010 10:52 am

Re: Pointeurs et tableau en C.

Postby HARD_SNAKE » Thu Dec 02, 2010 3:00 pm

Résolu : *ptr_tab est une variable char (1octets), il a donc une adresse reservé en mémoire programme,
Le tableau contient une chaine de 11 caractères, il réserve donc 11 octets en mémoire.
[code:1:6fb69a4440]
Adresse Contenu Type

0x0010 0x011 Pointeur
0x0011 H Caractère 01 du tableau|C
0x0012 a Caractère 02 du tableau|h
0x0013 r Caractère 03 du tableau|a
0x0014 d Caractère 04 du tableau|i
0x0015 S Caractère 05 du tableau|n
0x0016 n Caractère 06 du tableau|e
0x0017 a Caractère 07 du tableau|
0x0018 k Caractère 08 du tableau|c
0x0019 e Caractère 09 du tableau|a
0x001A \n Caractère 10 du tableau|r
0x001B \0 Caractère 11 du tableau|a
[/code:1:6fb69a4440]

Lors de la première execution de la boucle conditionnelle while, le pointeur contient l'adresse de la variable qui contient H, lors de la seconde éxecution, on incrémente le pointeur qui contient donc l'adresse de la variable qui contient a, et ansi de suite... jusqu'au moment ou la condition est rempli (pointage de \0) et c'est la fin du programme. A chaque itération, le printf affiche le contenu de la variable pointé.
HARD_SNAKE
Projets
 
Posts: 4
Joined: Thu Dec 02, 2010 10:52 am


Return to C/C++

Who is online

Users browsing this forum: No registered users and 0 guests

cron