Problème de pointeurs

Signaler
Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
-
Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
-
Bonjour a tous,
Voilà je galère encore grave avec les pointeurs,et j'ai une première question
(il risque d'en y avoir d'autre,vu mon niveau) je voudrai savoir quel est la syntaxe
pour créer un pointeur me permettant de créer dynamiquement un tablo de valeur.
Merci
Ps:Si quelqu'un peut m'indiquer un tut ou une source ça serait cool,ReMerci

6 réponses

Messages postés
224
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
18 octobre 2010

int nombre = 10;

en C++ tu peux ecrire:
int *tableau = new int[nombre]; //allocation
delete [] tableau; //liberation

et en C: (valable en C++ aussi)
int *tableau = (int*) malloc(nombre*sizeof(int)); //allocation
free(tableau); //liberation

ensuite pour acceder aux valeurs:
for(i = 0 ; i < nombre ; i++)
tableau[i] = 0;
Messages postés
10
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
27 janvier 2005

Moi je voulais savoir autre chose sur les pointeurs.
en effet si je veux un pointeur sur ue variable
comment faire? En fait je fais une confusion entre le & et * . Pouvez vous me donner un exemple
(je crois & valeur et * adresse ???) avec une declaration et un eutilisation des pointeurs.
Merci
Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
2
exemple: (basique)

int valeur;//La variable
int Tablo[5]={1,2,3,4,5};// Un tableau de int;
int *Pvaleur;//Le pointeur

Pvaleur=&valeur;//Pvaleur pointe sur valeur

/*Expliquation,chaque variable(ou objet ) a une adresse mémoire
& permet de récuperer cette adresse donc ici Pvaleur contient l'adresse de valeur*/

*Pvaleur=120;//Maintenant valeur est égal a 120

Pvaleur=t;//Maintenat il pointe sur le tableau t;
/*t contenant des adresses vers des int tu na pas besoin d'utiliser &
Pvaleur pointe sur le premier élément du tableau*/
pvaleur++;//Maitenant c'est sur la deuxième valeur

/*Les valeurs de ton tableau se suivent donc si tu incrémente Pvaleur
il pointe la valeur suivante.ATTENTION si tu dépasse la dernière valeur de ton tableau
Pvaleur pointera une autre donnée (du fait que toutes les valeur se suivent en mémoire)
donc tu aura n'importe quoi comme résultat.*/

Voilà le ptit exemple.

J'espère avoir répondu a tes attentes.

Corrigé moi si mes explications sont mauvaises.
Mais ça marche!
Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
2
Merci de ton explication bayeto je me perd encore avec les pointeur.
Une autre question quel est la différence entre delete et delete[]
Messages postés
224
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
18 octobre 2010

si tu fais delete tableau; delete ne supprimera que le premier élement
si tu fais delete [] tableau; tu supprime tous les élements
Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
2
Ok, merci.