begin process at 2012 05 30 18:21:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Taille d'un pointeur ou d'un tableau ( très bizarre )


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Taille d'un pointeur ou d'un tableau ( très bizarre )

mercredi 9 février 2005 à 00:01:02 | Taille d'un pointeur ou d'un tableau ( très bizarre )

thristam

Bonjour à tous,

Quand je veux connaitre la taille d'un tableau , je fais :
int i[10];
cout<<sizeof(i)/sizeof(int); // affiche 10
Pas de problème

Par contre , si je fais la même chose avec un pointeur , suprise ! :
int *i;
i = new int[10]; // pareil avec i = (int*)malloc(sizeof(int)*10);
cout<<sizeof(i)/sizeof(int); // affiche 1 !!!!!

J'ai obtenu ce résultat avec devcpp. Je suis obligé de passer par un pointeur pour faire une classe Tableau.

Qu'en penses-vous ?

mercredi 9 février 2005 à 06:42:38 | Re : Taille d'un pointeur ou d'un tableau ( très bizarre )

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Un pointeur n'est pas une variable stockant des données, mais une adresse mémoire. La taille d'un pointeur int est donc bien différente de la taille d'un int !

DarK Sidious

Administrateur et reponsable VB/API du site www.ProgOtoP.com
mercredi 9 février 2005 à 09:00:32 | Re : Taille d'un pointeur ou d'un tableau ( très bizarre )

ymca2003

La taille d'un pointeur (peut importe un pointeur sur quoi) est de 4 octets sur plateforme 32 bits, de même que la taille d'un int (désolé mais tu t'es trompé ou mal exprimé DARKSIDIOUS).

l'opérateur sizeof() permet de connaitre la taille su variable. Lorsque tu l'utilise avec un tableau statique (dont la taille est connu à la compilation), sizeof donne la taille en octets du tableau. Par contre avec un pointeur sur un tableau (créé dynamiquement ou même pointant sur un tableau statique) sizeof() renverra toujours 4 (sur plateforme 32 bits).

En conclusion, losque tu passe des tableaux en paramètres de fonctions (par l'intermédiare d'un pointeur), il faut égalemnt passer sa taille car sinon tu n'aura aucun moyen de la connaître).

Conclusion 2 : sizeof(array)/sizeof(array[0]) ne marche donc qu'avec des tableaux dont la taille est connue à la compilation.


Cette discussion est classée dans : taille, int, tableau, pointeur, bizarre


Répondre à ce message

Sujets en rapport avec ce message

je comprend plus rien(pointeur) [ par bidules ] Bonjour,Pour moi on utilise les pointeur pour creer des tableau dynamiquement.or j'ai reussi a en declarer un avec une taille entrer a l'aide d'une va C ANSI allocation dynamique de tableau [ par pedu ] Ce petit pro beug en sortie, pourquoi et que faire ?#include #include int (*pi)[1][1]; /* pointeur sur un tableau d'entiers */void main(void){ unsi Help Me [ par manta7 ] Bonjour, j'aimerais coder un fonction qui prend en paramètre un tableau de nombres entiers, et qui recherche, dans ce tableau, la plus grande différen taille tableau [ par MiTcH37 ] J'aimerai savoir comment connaitre la taile d'un tableau, pour ne pas les envoyer comme argument dans une fonction.ex : void fct(int trier[], int tail comment affecter un tableau à un pointeur d'une classe? [ par cesdejong ] Bonjour,je débute un peu en C++ et je suis confronté à un problème pour lequel je ne trouve pas de solution élégante :class truc{...int* abscisse;int* Agrandir la taille d'un tableau ? [ par ndubien ] Bonjour, Je cherche à agrandir un tableau ainsi:int variable = malloc( sizeof(int)*taille );Pour qu'elle devienne: int variable = malloc( sizeof(int)* Problème de définition de fonction dans une classe [ par labuche75 ] Bonjour à tous, je rencontre un problème à priori de définition de fonction dans la classe tableau permettant de manipuler de grands entiers nécessair sizeof pour determiner automatiquement la taille d'un tableau [ par Chatbour ] Salut à tous et à toutes, je me remets a C++ après une longue pause, donc soyez indulgents ^^ je me demande pourquoi ce code donne un résultat faux Envoyer un pointeur sur un tableau [ par xcxl ] Bonjour, J'ai une question sur les pointeurs à vous poser (décidément les pointeurs y'a pas plus complexe...erreur de segmentation à chaque fois) J' creation de plusieur tableau [ par foxwar ] Bonjour, j'aimerai cree un programme ki permet de cree plusieur tableau du different taille et les afficher g ecirt ce programme mai je c pa ce k'il


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,312 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales