cs_Max1me
Messages postés6Date d'inscriptionjeudi 12 août 2004StatutMembreDernière intervention17 août 2004
-
13 août 2004 à 03:29
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 2007
-
18 août 2004 à 20:13
Salut :).
Donc je suis à la recherche d'un tutoriel facile en C++. J'en ai suivi qqes-uns mais à chaque fois je bloque (surtout au niveau des pointeurs) :/. J'ai pourtant qqes maigres connaissances en PHP / XHTML, et j'aime bien comprendre en modifiant (quel bonheur les sources de ce site, je m'amuse comme un fou :D) mais c'est malheureusement pas aussi facile qu'en HTML. J'ai aussi deux livres, le manuel C++ qu'on m'a offert ainsi que le C++ précis et concis de chez O'Reilly. Le truc c'est qu'aucun des deux n'explique clairement.
Merci beaucoup d'avance.
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 13 août 2004 à 17:33
Un pointeur contient une adresse vers un objet (structure, union, variable..) :
*pointeur = ca s'appelle la dereferenciation, ca permet d'obtenir le contenu de l'objet pointé, exemple :
int *pointeur;
int a = 5;
pointeur = &a; //& devant une variable permet d'obtenir son adresse
printf("%d", *pointeur);
Tu auras en sortie, "5".
C'est vraiment la base sur les pointeurs, mais si tu n'as pas compris, ne tembete pas, redemande moi, je sais ke c dur au depart.
++
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Max1me
Messages postés6Date d'inscriptionjeudi 12 août 2004StatutMembreDernière intervention17 août 2004 13 août 2004 à 19:12
Oui ça j'ai compris, mais c'est à quoi ça sert que j'ai pas compris.
On a tenté de m'expliquer que c'était pour le passage en valeur dans les fonctions, que ça allait plus vite. Mais c'est encore flou :s.
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 14 août 2004 à 20:19
Ok, donc, un exemple :
#include <stdio.h>
struct Structure
{
int gros_tableau[10000];
};
Structure gros_objet; // "gros_objet" prend beaucoup de place en mémoire
// On a besoin d'une fonction qui prendra en paramètre un objet de type Structure. Seulement voilà, chaque fois que tu passes une variable (ou objet c'est pareil) en paramètre à une fonction, cette variable est copiée pour être utilisée dans la fonction. Dans notre cas, l'objet "gros_objet" serait copié, ce qui serait long et nous ferait perdre de la mémoire (sur la pile). Donc ce qu'on fait, on passe en paramètre l'adresse de "gros_objet" à cette fonction; cette adresse (qui est un nombre 32 bits, pareil qu'un int quoi) sera utilisée en interne dans la fonction, ce qui évitera de gaspiller de la mémoire :) Aussi, si à l'intérieur de la fonction tu modifies l'objet pointé par cette adresse, ben "gros_objet", qui est à l'extérieu de la fonction, sera modifié, puisque c'est lui qui est désigné par l'adresse en question. Bon, allez j'arrête ce commentaire et je passe au code :
void MaFonction(Structure *p_objet)
{
// Ici j'agit sur *p_objet, par exemple :
(*p_objet).gros_tableau[0] = 139;
}
int main()
{
MaFonction(&gros_objet); // Je passe l'adresse en paramètre à MaFonction() (logique puisqu'elle attend un pointeur, soit l'adresse d'une variable).
printf("%d\n", gros_objet.gros_tableau[0]); // Ça affichera 139.
return 0;
}
J'espère avoir été clair...
---------------------------------------------------------
Patience et longueur de temps font plus que force ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/ Un concours de prog graphique, ça vous dit? c'est sur Coder-Studio : http:
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 18 août 2004 à 20:13
Ouhla il est pas bon ton truc :S
Déjà, en global, définis ta structure :
struct client
{
int age;
}; // Avec un point-virgule
int main(int argc, char *argv[])
{
client robert;
robert.age = 67; // Robert a 67 ans
return 0;
}
Faut pas définir une structure ou une classe, ou une fonction...etc à l'intérieur d'une fonction ^^
---------------------------------------------------------
Patience et longueur de temps font plus que force ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/ Un concours de prog graphique, ça vous dit? c'est sur Coder-Studio : http: