1

Dans un tableau de type int *tableau, comment est-ce que je peux savoir si une la valeur tableau[1] par exemple est un pointeur vers un nombre ou une chaine ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

2

tu viens de declarer un pointeur la grin
"I read the game.dll assembly more easily than you read the joke on the back of your box of Cocoa Pebbles, and have spent the past 2 1/2 years navigating it." ©

3

Ce serait int**tableau plutôt ou int *tableau[]

4

je c que c un pointeur... normalement chaque case du tableau pointe vers une variable non ?
bah j'aimerais savoir si ça pointe vers une chaine de caractères ou vers un nombre.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

5

roll
"I read the game.dll assembly more easily than you read the joke on the back of your box of Cocoa Pebbles, and have spent the past 2 1/2 years navigating it." ©

6

confus
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

7

Tu enregistres le type quelque part et tu le lis. En C, le type n'est pas enregistré par un tag comme en BASIC, il faut que tu l'enregistres explicitement.
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é

8

ok, donc je dois créer un autre tableau qui contiendra, par exemple, 1 pour un nombre et 2 pour une chaine ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

9

Exactement smile

10

ok merci wink

ahem... encore une question grin
je vais me retrouver avec 2 tableaux de 6000 élements chacun. Je sais pas cb ça représente en mémoire mais ça doit pas être léger leger...
Donc faudrait utiliser malloc, mais c koi la syntaxe pr connaitre la taille d'un tableau de 6000 éléments ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

11



for(n=0; n<6000; n++)
size+=sizeof(tableau[n]);

12

whow !
y'a pas moyen de faire un trucs genre :

int tableau[6000]=malloc(6000*sizeof(int)) ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

13

int *tableau;  // Je l'ai déclaré en int*, mais je crois qu'on peut mettre ce qu'on veut.
tableau=malloc(6000*sizeof(int));

[edit]Edité par jackiechan91 le 23-03-2002 à 14:28:49[/edit]

14

ok, mais où est-ce que je met le [6000] pour préciser que c un tableau ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

15

c'est pas la peine de préciser que c'est un tableau.
si ton tableau est initialisé dès le début du prog, il te faudra tout recopier en RAM :
memcpy(tableau,tableau_init,6000*sizeof(int));

16

ah ok, je peux pas directement déclarer un tableau ac malloc ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

17

Ben non, en fait, tu ne peux pas déclarer ton tableau et le copier en RAM d'un coup. Il faut que tu alloues l'espace nécessaire avec malloc() qui te renvoie un pointeur vers le premier octet du bloc alloué, et dans cet espace alloué, tu peux copier ton tableau.

Par contre, pour y accéder, tu dois faire ça : tableau[ligne*nb_col+col]
par ex tu veux accéder à l'élément de la 5ème colonne, sur la 2ème ligne, en supposant que ton tableau comporte en tout 30 colonnes : tableau[2*30+5];

Mais il y a une autre technique (dont Kevin avait parlé dans un autre topic) où tu peux accéder aux éléments de façon plus simple.
Je vais essayer de la retrouver.

18

ok merci wink

par contre le coup du tableau[ligne*nb_col+col], ça va pas le faire sad
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

19

voilà.
C'est la troisième technique la mieux, d'après mes souvenirs, mais je n'ai pas compris comment elle fonctionne...

Sinon, tu peux faire un #define :
#define tab(l,c) tableau[(l)*nb_col+c]
èdes à un élément comme ça : tab(2,5);Et tu acc

20

sadsadsad

v essayer de ne pas "malloquer" mes tableaux roll
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

21

mais si tu as 2 tableaux de 6000 éléments chacun et que ces éléments sont des INT, ton prog fera au minimum 24ko !!!

22

oops sadsadsad
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

23

Ils contiennent quoi, ces tableaux ?

24

des pointeurs
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

25

ça marche pas mourn

si j'utilise leur technique ac calloc, ça me sort des "protected memory violation", alors que quand je les calloc pas ça marche sadsadsad
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

26

vu que tu veux 2 tableaux fait:

int (*tableau)[2] = NULL;
[...]
tableau = calloc(6000,sizeof(*tableau));
[...]

mais c quand mm enorme 6000 trucs dans un tableau !

27

bah voui ça c la méthode n°3 du lien de Jackiechan91, mais ça me sort des erreurs memory à la moindre occasion sad

Oué je c, 6000 c beaucoup, mais je prévois large... 1000 devraient suffire
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

28

Bon pour l'instant, je malloc pas, tant pis pr le stack..

Est-ce que qqun sait ce que je devrait utiliser pour :
1) Une fonction wait en C pur, qui soit petite et plutot précise (enfin surtout petite)
2) Une routine d'affichage de rectangle très rapide

?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

29

au fait, si tes arguments ne sont que des coordonnées de points (inférieures à 255), mets des unsigned char au lieu d'int, ça prendra 2 fois moins de mémoire.

30

bah ça peut être > à 255, donc je dois garder les ints sad

au fait pr mes gros tableaux, c'est pas des variables globales, donc la taille du prog n'augmente pas. C le stack qui prends tout.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)