1

Je comprends as ce qu'est un pointeur et donc à forciori je ne comprends pas à quoi ça sert.
Une bonne âme pour m'expliquer concrètement ?

2

Un pointeur est une variable qui ne stocke pas un contenu, mais une adresse.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

3

Bon, déjà, il y a Thibaut qui a fait un tutorial sur les pointeurs.

Pour te donner une représentation de ce que c'est, on peut faire un parallèle entre un pointeur et un raccourci windows en quelque sorte.
Le raccourci est stocké par exemple sur ton bureau, mais il 'pointe' sur une application stockée n'importe où.
Le pointeur c'est pareil, il est stocké quelque part, et il pointe vers d'autres données.

Le raccourci contient le chemin de on application (c:WINDOWSprgram files...)
Le pointeur contient l'adresse de l'octet pointé.

On peut exécuter une application à partir du raccourci en double-cliquant dessus.
On peut lire des données à partir d'un pointeur.

4

oui ça c marqué dans tout les bouquins.
mais ca ne m'explique pas l'interet concret du pointeur

5

Ça sert à faire le genre de trucs qu'on ferait avec des indirections en BASIC.
Mais l'adresse remplace le nom de la variable (qui n'est pas connu en temps d'exécution).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

6

c marrant les pointeurs oui

avec ça, tu peux faire tout ce que tu ne peux pas faire sans...




heu confus
j'ai dit une connerie ?
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

7

dsl, mais vous etes plutot obscur là

8

jacki > le lien marche pas embarrassed(

personne a une copie de ce tuto ?

9

De toute façon, si ce qu'on t'a dit te paraît obscur, à mon avis le tuto de Thibaut le sera aussi pour toi...
Mais je n'ai pas bien compris ce que tu cherches à savoir. confus

10

ben le pointeur en général...
pas forcemment uniquement l'application en C pour ti.
apperement ca sert à transferer des variables dans des sous programmes par exemple

11

Ben oui, mettons que tu doives faire une fonction qui renvoie deux entiers (des coordonnées par exemple) sans utiliser de structure : comment fais-tu sans pointeurs ?

Avec des pointeurs, tu ferais quelque chose comme :

short a,b;

void MaFonction(short *a, short *b) {
 *a = ...;
 *b = ...;
 return;
}

L'appel se fait ainsi : MaFonction(&a,&b)

12

rien capté zdr

13

Peut-être qu'avec une comparaison, ça ira mieux:

En BASIC:

mafonc(a,b)
:Prgm
:...->#a
:...->#b
:EndPrgm


À appeler comme:

mafonc("var1","var2")


En C:

void mafonc(short *a, short *b) {
*a = ...;
*b = ...;
}


À appeler comme:

mafonc(&var1,&var2);
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

14

ok ça a rapport avec les variables local / pas local

15

Mais attention ce n'est qu'une des utilisations possibles des pointeurs. Mais c'est une des plus importantes.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

16

non.

les variables sont stokées ds la mémoire à des endroits précis. et cet endroit précis a une adresse. ben un pointeur, c une variable qui contient l'adresse d'une autre variable.


pointeur = adresse variable var
ce qui donne en C :
pointeur = &var ;

contenu de var = ce qui se trouve à l'adresse stockée ds le pointeur
var = *pointeur


la déclaration c
type de variable *pointeur ; //(sachant que le pointeur lui meme est tjs constitué de 4 octets sur la plupart des machines, c à dire que c un unsigned long)
par exemple : char *pointeur ;
et pour var : char var ;

17

comme quoi avec un peu de perséverance on comprends tout

18

Imagine que la memoire est un super mega-tableau de taille 256 K.
Un pointeur c'est un indice du tableau.

19

Pour tout comprendre sur les pointeurs, il y a ce superbe cours : http://www.ti-fr.org/prog/index.php?do=c/tuto/pointeurs gni
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

20

microbug
a écrit : comme quoi avec un peu de perséverance on comprends tout

et aussi grâce à mon sens pédagogique ultra développé gol

21

erf, j'arrive trop tard, il a tout compris. wink
De touta façon j'arrive mal à expliquer, je me comprend tout seul, mais les autres comprennent rarement mes expliquations. gringrin

Sinon juste pour revenir sure les histoires des var locales/globales, on passe en effet l'adresse d'une var locale (déclarée dans _main par ex) à une fonction (mafonc()) par un pointeur, et du coup à partir de mafonc(), on peut tout faire tout nos opérations sur celle qui est déclaré dans _main

mais comme dit kevin, ce n'est vraiment pas l'utilisation première d'un pointeur !
Un pointeur est bien plus souvent utilisé pour referencer un tas de variables et y acceder rapidemment par arithmétique de pointeur (on passe aux adresses successives par des sommes ou des différence), voilà comment on fait dans un tableau (matrice).

Ex : l'adresse de mat[0][0] est celle contenue dans "mat" !
En fait, mat est un pointeur, pointant sur le 1er élément du tableau, dont les éléments sont tous "empilé" sur la pile (ou en RAM), donc à des adresses successives.
Par ex, pour acceder à mat[0][1], il suffit de faire *(mat + 1), on a ajouté 1, donc on est passé à l'élément suivant, et grace à l'indirection " * ", on a la valeur de cette éléments et non l'adresse.
Enfin moi je m'en sers surtout pour ça.

PS : corriger moi en cas d'erreur, j'ai écris ça vite fait, j'ai pas le temps de tout vérifier. wink
Non-Webmaster et non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les Webmasters .

«- Pas Moo ! ^^