Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1113 connectés 

  FORUM HardWare.fr
  Programmation
  C

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1461230
in_your_ph​ion
Posté le 20-10-2006 à 12:25:06  profilanswer
 

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
mood
Publicité
Posté le 20-10-2006 à 12:25:06  profilanswer
 

n°1461259
Emmanuel D​elahaye
C is a sharp tool
Posté le 20-10-2006 à 12:42:39  profilanswer
 

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/
n°1461469
0x90
Posté le 20-10-2006 à 15:18:47  profilanswer
 

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.
n°1461501
MagicBuzz
Posté le 20-10-2006 à 15:55:29  profilanswer
 

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

n°1461502
jesus_chri​st
votre nouveau dieu
Posté le 20-10-2006 à 15:56:01  profilanswer
 

+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

n°1461504
jesus_chri​st
votre nouveau dieu
Posté le 20-10-2006 à 15:56:34  profilanswer
 

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 ;)

n°1461524
MagicBuzz
Posté le 20-10-2006 à 16:08:47  profilanswer
 

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 ;))

n°1461527
jesus_chri​st
votre nouveau dieu
Posté le 20-10-2006 à 16:13:06  profilanswer
 

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
n°1461681
matafan
Posté le 20-10-2006 à 21:10:37  profilanswer
 

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 ?

n°1461682
Sve@r
Posté le 20-10-2006 à 21:18:37  profilanswer
 

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.
mood
Publicité
Posté le 20-10-2006 à 21:18:37  profilanswer
 

n°1461701
in_your_ph​ion
Posté le 20-10-2006 à 22:04:20  profilanswer
 

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
n°1461702
in_your_ph​ion
Posté le 20-10-2006 à 22:05:31  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

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

 

Sujets relatifs
Question toute simple sur les arrays en VBA / Excelquestion adressage menu
[Résolu] Api win 32, quelque question de débutant....[C#]Question à propos de la compilation de mon projet
Petite question de paternQuestion vis a vis des tables sys d'oracle
[RESOLU] question rapide (je pense)question stupide... une ligne de RS par son numéro
[Résolu] Dbgrid et Tpagecontrol Question bêteQuestion sur les types de données de MySQL
Plus de sujets relatifs à : Question sur les pointeurs...[Madame Bellepaire, Loches]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR