begin process at 2012 05 29 13:50:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Les pointeurs sont-ils si avantageux côté performance ?


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

Les pointeurs sont-ils si avantageux côté performance ?

mercredi 7 janvier 2004 à 18:05:24 | Les pointeurs sont-ils si avantageux côté performance ?

ZackyBambou


ZackrBambou

Voici je débute en c++ puisque je cherchais un langange pouvant optimiser la rapidité de mes programme par la mémoire et les calcul au cpu, je fais des tests pour m'assurer comment je peux sauver de la mémoire et gagner de la vitesse vs visual basic.

Or je croyais l'utilisation d'un pointeur pourrait m'aider sur ce point, mais je ne vois pas comment !

Voici un exemple
j'ai la variable int base =5;
ensuite j'ai mon pointeur soit int *pBase=0;

j'initialise le pointeur
pBase = &base;

ensuite j'évalue
le résultat est le suivant en utilisant la fonction sizeof() de iostream.h


La VALEUR de base est : 5
L'ADRESSE de base est :0x0042ED50

La TAILLE de base est :4 octets


La VALEUR de pBase est :0x0042ED50
L'ADRESSE de pBase est :0x004326A4
La TAILLE de pBase est :4


La VALEUR de *pBase : 5
L'ADRESSE de *pBase : 0x004326A4

La TAILLE de *pBase : 4

Donc si j'ai une variable définie par une struct personnelle pouvant chargé 10 megs en mémoire et que je déclare les megs pointeur... je me trouve avec un autre 10 megs en mémoire + un 4 octect de pBase tout comme si j'avais initialisé une seconde var temporaire à la valeur de base ce qui est beaucoup plus simple non ?


ex pour être sur qu'on se comprenne
int base = 5;
int tmpbase = 0;
base = tmpbase;
fini !


Si je me trompe quelque-part puisque je recherche vraiment la meilleur méthode de programmer avec le c++ faites-le moi savoir ca sera apprécié et peut-être verrais-je la lumière hihihi

Zacky ! Have Nice Day
mercredi 7 janvier 2004 à 19:10:49 | Re : Les pointeurs sont-ils si avantageux côté performance ?

djl


eu... c'est sur que pour faire une affectation c'est pas necessaire un pointeur. avec un pointeur tu peut alouer, liberer, pointer...
mercredi 7 janvier 2004 à 19:30:01 | Re : Les pointeurs sont-ils si avantageux côté performance ?
mercredi 7 janvier 2004 à 19:30:28 | Re : Les pointeurs sont-ils si avantageux côté performance ?

sebseb42

en gros, l'avantage du pointeur, c'est que tu peux dire a une fonction "voila, les 10 megs de données sont la-bas, va les chercher" plutot que dire "tient, mange toi 10 megs dans la tronche" en les donnant en données.

typedef struct s_data
{
int machin;
int truc;
...
// 10 megs de données

} t_data;

ensuite tu as une fonction comme ca :

...
t_data my_data_struct;

my_data_struct.machin = 5;
my_data_struct.truc = 5;
// et ainsi de suite

traitement_data(my_data_struct); // allocation de 10 megs sur la pile, 100% de chance d'avoir un stack overflow au run-time

// ou alors...

traitement_data(&my_data_struct); // 4 octets allouer sur la pile, aucun problemes

Voila, j'espere que ca t'aura permis de voir un peu plus claire aux pointeurs
lundi 19 janvier 2004 à 00:16:35 | Re : Les pointeurs sont-ils si avantageux côté performance ?

magic_Nono

Membre Club
En résumé,
passer un paramètre dans une fonction la copie,

donc, quelque soit ce param, en général, cela permet de sécuriser les fonctions...
(un param IN ne sera pas modifié...)
mais si ce param est gros (ex: un gros tableau, un grosse classe)
Le travail devient + lent et la taille nécessaire en RAM augmente alors que ce n'est pas forcément nécessaire...
L'idée est alors de ne passer que l'@ en param
et seule cette adresse est copiée...

-une des idées à la base de MétaProg était de pouvoir vérifier que les param transmis par adresse sont modifiés...-
(MP et pas MPLight pour ceux qui me suivent...)
[ref ds mes srces...à venir...}

@+
Magic Nono: l'informagicien!


Cette discussion est classée dans : base, int, mémoire, pointeur, pbase


Répondre à ce message

Sujets en rapport avec ce message

analyseur code pour dépassement mémoire [ par adrienj ] Bonjour à tous,j'utilise Splint pour analyser mon code C et je souhaite que le résultat de l'analyse me dise les failles de gestion mémoire du genre ( pointeur-mémoire [ par baby3378 ] bonjours à tous,Voila j'ai voulu créé un programme qui peut acceder à la mémoire grace aux pointuer, je m'explique:_un pointeur se place sur une adres déclaration d'un pointeur sur un entier [ par iam_myst ] bonjour à tous j'aimerais savoir s'il est possbile de faire ceci:      int *tabcle = new int[56], *final = new int[48]; personellement ca me prov pointeur sur une fonction [ par pasty ] Bonjour,J'appelle une fonction f(int *,int *,int) dont le code  est dans un DLL depuis le programme principal main.cpp Je déclare la fonction dans m Incrémentation qui passe de 4 en 4 [ par N3oPhyte ] Bonjour j'ai écrit ou plutot tenté d'écrire un petit programme qui fait un dump de la mémoiremalheureusement le pointeur principal 'adresse' passe de Arguments et pointeur. [ par moumouteb ] Bonjours. Voici le bout de code qui pose problème:int Jeu (*ecran) {     ecran = SDL_SetVideoMode(Fenetre.x, Fenetre.y, 32, SDL_HWSURFACE | SDL_DOUBLE CONVERSION BINAIRE/HEXA [ par alex64100 ] BJR,je dois développer un prog d e conversion   binaire/héxaa partir de ce code  :#include #include #include /*  exo 2.Becrire un n pointeur de fonction membre [ par maximus4 ] bonjour a tous,je voudrai savoir comment on passe en paramètre d'une fonction membre une autre fonction membre d'une autre class déjà instanciéeex:cla Allocation dynamique de mémoire d'un tableau dans une fonction [ par DJfewos971 ] Bonjour a tous,mon problème est de pouvoir alloué la mémoire dynamiquement d'un tableau dans une fonction.Voici mon problème niveau Code:#include #inc Pointeurs ... [ par Ziman ] Bonjour,J'ai une petite question, c'est pas vraiment un probleme de code mais plutot de théorie. Imaginez qu'en global j'ai déclaré un pointeur vers u


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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,406 sec (3)

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