1

BOn je debute et j'ai enfin compris comment on se sert des pointeurs(enfin les bases)
Quel est l'interet d'utiliser des pointeurs en general, et en particulier avec les tableaux:
Pourquoi mettre:
*(PTR + 1)
plutot que
A[1]

PTR etant le nom d'un pointeur pointant vers le tableau A

Voila, merci d'avance!

2

tu peux t'en passer des pointeurs.

c'est surtout pour faire des programmes plus rapides et concis (et pas tres clairs par ailleur).

3

Mouais, mais si c plus rapide faut mieux les utiliser non?

4

Contrairement a ce que te dis segaman les pointeurs c essentiels smile
C indispensable pour les tableaux, les allocations, les chaines de caracteres, la lecture de données en mémoire, l'optimisation, les sprites, les listes et j'en passe wink
[edit]Edité par Bill-Bob le 01-07-2001 à 20:46:57[/edit]
avatar
pwet

5

il est clair que quand tu peux utiliser l'adressage avec [], tu l'utilise, d'ailleur c'est internement remplacé par *(ptr+offset).

c'est plus rapide, la c'est relatif hein !

je te conseille de lire un livre sur le C pour voir ou sont les interets/inconvénients des pointeurs.

6

genre par exemple, plutot que de passer tout un tableau en parametre d'une fonction, tu ne passera en realité que le pointeur.
youpi !

7

les opérations avec les pointeurs sont plus rapides que leurs équivalent sous forme tableau.

Les pointeurs ça sert à plein de choses... par exemple à passer un tableau à une fonction (on fait comment sinon ? le passage par valeur d'un tableau de 20 Ko...)

et puis y a pas qu'avec les tableaux que c'est utile les pointeurs, avec les fonctions aussi :

typedef void moncallback(int);

void appellernfois(moncallback c, int n, int param)
{
for(; n>0; n--)
(*c)(param);
}

void toto(int p)
{
printf("toto:%d", p);
}


main()
{
appellernfois(toto, 10, 3);
}

8

Ah ben j'ai encore des choses à t'apprendre bang

Joking cool

9

boh, pas mieux j'ai apris le C paske j'étais obligé, je voulais programmer sous windows (ct y a longtemps... du temps de BC 4 smile) M$ aura au moins fait une chose bien grin

10

je réitère :

TU PEUX TE PASSER DES POINTEURS EN C. je peux te dire que moi meme j'ai fait de nombreux programmes en C sans les utiliser.. bien sur c'est mieux avec si tu te débrouille en C, mais si t'es débutant cela ne risque que de t'embrouiller sans t'etre de grande utilité.
en effet Bill-Bob tu utilise un pointeur qu'a partir du moment ou tu en déclare un, ex : char* blah;
quand tu fait passer un paramètre à une fonction, appelle une fonction, ou utilise un tableau cela ne s'appelle pas utiliser les pointeur..

et pour kukuyoo dit toi qu'un pointeur c'est comme les raccourci dans windows pour le principe...
je notifie aussi qu'en général il vaut mieux priviligier une meilleur lisibilité du code donc utiliser les [] plutot qu'un pointeur. quoique sur TI89 ce ne soit pas vraiment valable a cause du CPU un peu rustique.. mais si c'est sur une bonne machine, ne pas hésiter..
[edit]Edité par segaman le 04-07-2001 à 06:43:22[/edit]

11

bon je me fait encore chier pour rien la... en plus je vais surement me faire critiquer par les adaptes du code illisible car leur politique je-me-sens-encore-meilleur-quand-mon-code-est-illisible.

donc kukuyoo achete toi un livre, lis le,
ou paie toi une école et vas-y !

12

D'accord à 100 %
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.

13

>je notifie aussi qu'en général il vaut mieux priviligier une meilleur lisibilité du code donc utiliser les [] plutot qu'un pointeur. quoique sur TI89 ce ne soit pas vraiment valable a cause du CPU un peu rustique.. mais si c'est sur une bonne machine, ne pas hésiter..

Je suis pas vraiment d'accord ...
utiliser truc[machin] et equivalent a *(truc+machin) (meme code generé), donc le CPU n'a rien a y voir ...

Par contre, quand tu parcoure un tableau dans une boucle, c'est beaucoup plus rapide avec un pointeur, et tout aussi lisible:

for (I=0; I<MAX; I++) {
 do_something_with (tab[I]);
}

for (pointeur= &tab[I]; pointeur < &tab[MAX]; pointeur++) {
 do_something_with (*pointeur);
}

14

et les pointeur sont aussi tres efficace avec les structures:

do_something_with (mon_tableau_de_structures[I].champ_1);
do_something_else_with (mon_tableau_de_structures[I].champ_2);
mon_tableau_de_structures[I].champ_3= mon_tableau_de_structures[I].champ_1+mon_tableau_de_structures[I].champ_2;

--------

pointeur= &mon_tableau_de_structures[I];

do_something_with (pointeur->champ_1);
do_something_else_with (pointeur->champ_2);
pointeur->champ_3= pointeur->champ_1+pointeur->champ_2;

15

Bon g la flemme d'essayer de comprendre vos codes, de toute facon je me suis achete un bouquin smile

Merci pour vos reponsescool

16

les pointeurs c pas fait pour rendre un code illisible et se la peter ...
y en a j'vous jure : ils connaissent pas une notion mais ils veulent pas se donner la peine de la comprendre alors ils s'inventent des excuses pas possibles : et d'ailleurs ils ont peur de se faire "critiquer par les adeptes du codes illisibles" parce qu'ils savent tres bien qu'il defendent une cause perdue smile
avatar
pwet

17

sinon pour information il faut que tu sois bien conscient que les pointeurs c une notion qui est tres tres vite abordee dans l'apprentissage du C ! Tout ca pour dire que c'est UNE des notions fondamentales ! C pas un truc reserve aux "pros" !

Enfin je te ferais remarque que les pointeurs il n'y a que ceux qui savent pas ce que c'est qui ne s'en servent pas ... les autres les utilisent a tord et a travers [y a peut-etre une raison nan ?]
avatar
pwet

18

Dark Angel >
ben je sais pa mais moi je trouve celui la bien plus clair
for (I=0; I<MAX; I++) {
do_something_with (tab[I]);
}
enfin question de gout personnel sans doute.

Bill-Bob > pff tu dit vraiment nimporte quoi la.. je connais bien les pointeurs.. aussi je peux t'assurer que les adeptes du code illisible je les connais et y en a partout surtout sur les forums comme celui-ci ou pullulent pubères et autres acnéïstes, meme moi j'ai été tenté par cette politique étant jeune.
ce que je voulait dire et que t'as pas compris, c'est qu'au début de l'apprentissage il est inutile de se prendre la tete avec le concept tordu des pointeurs quand on peut tres bien s'en passer pour faire tout ce qu'on veut faire(tests, jeux). enfin ça c'est ma méthode personnelle.
si tu préfères apprendre comme à la l'école(et bien sur au passage tu seras le plus fier de monde avec ta petite note de 18/20 en ayant bien réitéré toute une leçon, magnifique !) tout le langage puis ensuite te rendre contre que non seulement tu sais pas coder le moindre programme potable mais en plus que ce langage à la con te fait trop chier, les cours c nul et les profs sont cons (à ben et encore je pourrais en rajouter)(...) y a une longue suite totalement pas en rapport avec le début de la phrase mais je l'ai deleté par peur de choquer et peut etre meme par pudeur de me montrer sous mon vrai jour.

19

arf laisse tomber [Polux] si tu programmes avec les pointeurs c'est que t un pov gars qui ne sait rien faire d'autre que de dire amen aux "conneries" apprises en fac !

Sans oublier que les pointeurs c un concept "tordus" !
N'empeche qu'a 5 ans tu utilises les pointeurs pour lire ... quand tu suis les mots de la phrase avec ton doigt tongue ... donc c plus naturel qu'autre chose na !

Ceci dit moi je v pas essaie de discuter avec segaman alors que des le depart il a pa envie d'ecouter autre chose que ce qu'il a a dire [je suis dans le meme cas remarque wink]
avatar
pwet

21

>C'est plus clair avec les []

La je suis pas d'accord dans beaucoup de cas, c'est quand même beaoucoup plus clair avec des pointeurs, et pis on peut faire beaucoup de chose avec les pointeurs que l'on peut pas faire avec les tableau, style :

int a,b,*c;

a=1; //a=1 b=undef c=undef *c=undef
b=2; //a=1 b=2 c=undef *c=undef
c = &a; //a=1 b=2 c=Addresse_de_a *c=1
*c=3; //a=3 b=2 c=Addresse_de_a *c=3
c=&b; //a=3 b=2 c=Addresse_de_b *c=2

printf("a = %d b = %d c = %dn",a,b,*c);

Et sa sort bien entendu :
a = 3 b = 2 c = 2

c'est q'un exemple de merde qui sert a comprendre le fonctionnnemt des pointeurs, mais sa prouve leurs utilité énorme, d'ailleur faudra remarquer que seul les languague de haut niveau (C, pascal, ada...) qui utilise les pointeurs sont les plus utilisé....

Explique moi comment tu ferait sa avec les tableaux ???

Je dirait qu'un utilise aussi les pointeur en ASM :

move (a0),5; On fait quoi la ? si se n'est pas une sorte de pointeur ???

[pollux] > (pour une fois que je te soutient grin) C normal que ton code génére moins d'asm ! il est plus facilement optimisable pas le compilateur !! Sinon quel interé il aurait eu de faire un while et un for, si il générait le même code ?
[edit]Edité par godzil le 06-07-2001 à 14:09:16[/edit]
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

23

lol grin
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.