Question sur les pointeurs...[Madame Bellepaire, Loches]

Question sur les pointeurs...[Madame Bellepaire, Loches] - C - Programmation

Marsh Posté le 20-10-2006 à 12:25:06    

salut,  :hello:  
 
est-il vrai de dire que si on déclare un pointeur  

Code :
  1. int *p;


on réserve un case dans la mémoire qui contient une adresse, l'adresse d'une case contenant un entier ?  
 
Autrement dit, est ce que  

Code :
  1. int *p;


c'est la même chose que de faire un

Code :
  1. int **q = malloc(sizeof(int*));


avec  

Code :
  1. *q = p;


 
... En fait je voudrais savoir si le fait de juse faire int*p; ca revient à reserver une case dans la mémoire qui contiendra une adresse, meme si on fait pas de malloc ....???? j'espere que vous comprenez ma question ..
 
 
à vot' bon coeur m'sieurs dames ...
 
 :wahoo:

Message cité 1 fois
Message édité par in_your_phion le 20-10-2006 à 12:26:06
Reply

Marsh Posté le 20-10-2006 à 12:25:06   

Reply

Marsh Posté le 20-10-2006 à 12:42:39    

in_your_phion a écrit :

est-il vrai de dire que si on déclare un pointeur  

Code :
  1. int *p;


on réserve un case dans la mémoire qui contient une adresse, l'adresse d'une case contenant un entier ?  


On réserve un zone mémoire qui pourra contenir l'adresse d'un int. Pour le moment, le contenu est indéterminé.

Citation :

Autrement dit, est ce que  

Code :
  1. int *p;


c'est la même chose que de faire un

Code :
  1. int **q = malloc(sizeof(int*));


avec  

Code :
  1. *q = p;




A condition de vérifier avant si q est non NULL, oui.

Citation :


... En fait je voudrais savoir si le fait de juse faire int*p; ca revient à reserver une case dans la mémoire qui contiendra une adresse, meme si on fait pas de malloc ....????

Oui. Tu découvres les définitions de variables ?


Message édité par Emmanuel Delahaye le 20-10-2006 à 12:43:18

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 20-10-2006 à 15:18:47    

Ca fait une petite différence sur l'endroit ou se trouve p ou q quand même ;)


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 20-10-2006 à 15:55:29    

il est vrai que le p sort du q
 
(désolé)

Reply

Marsh Posté le 20-10-2006 à 15:56:01    

+1
une histoire de pile et de tas...
et un peu aussi le fait que l'un aura besoin d'un free() et pas l'autre

Reply

Marsh Posté le 20-10-2006 à 15:56:34    

MagicBuzz a écrit :

il est vrai que le p sort du q
 
(désolé)


au moins ça a un rapport avec le pseudo du posteur ;)

Reply

Marsh Posté le 20-10-2006 à 16:08:47    

jesus_christ a écrit :

au moins ça a un rapport avec le pseudo du posteur ;)


j'avais pas fait gaffe :D  
 
(bon, j'arrête de polluer, c'est pas bien ;))

Reply

Marsh Posté le 20-10-2006 à 16:13:06    

MagicBuzz a écrit :

j'avais pas fait gaffe :D  
 
(bon, j'arrête de polluer, c'est pas bien ;))


celà dit, vu la qualité de la question posée, il n'y a pas grand préjudice... :sarcastic:

Message cité 1 fois
Message édité par jesus_christ le 20-10-2006 à 16:13:50
Reply

Marsh Posté le 20-10-2006 à 21:10:37    

Quand tu fais int i, tu reserves une case faite pour contenir un int. Quand tu fait int *p, tu reserves une case faite pour contenir l'adresse d'un int. Quand tu fait int **q, tu reserves une case faite pour contenir l'adresse d'une case faite pour contenir l'adresse d'un int. Quand tu fait int ***r, ... C'est plutot logique, non ?

Reply

Marsh Posté le 20-10-2006 à 21:18:37    

matafan a écrit :

Quand tu fais int i, tu reserves une case faite pour contenir un int. Quand tu fait int *p, tu reserves une case faite pour contenir l'adresse d'un int. Quand tu fait int **q, tu reserves une case faite pour contenir l'adresse d'une case faite pour contenir l'adresse d'un int. Quand tu fait int ***r, ... C'est plutot logique, non ?


Mais aller au-delà de "<type> **" c'est prise de tête assurée...


Message édité par Sve@r le 20-10-2006 à 21:18:57

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 20-10-2006 à 21:18:37   

Reply

Marsh Posté le 20-10-2006 à 22:04:20    

Citation :

Oui. Tu découvres les définitions de variables ?


 
ok,merci...je les redécouvre, je voulais juste être sûr étant donné que j'ai jamais trop lu de bouquin de C, je me disais que ça devait être comme ça :o
 
MagicBuzz ->  :lol:


Message édité par in_your_phion le 20-10-2006 à 22:04:43
Reply

Marsh Posté le 20-10-2006 à 22:05:31    

jesus_christ a écrit :

celà dit, vu la qualité de la question posée, il n'y a pas grand préjudice... :sarcastic:


 
tu sera crucifié pour ce parjure mon fils  :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed