Zeph Le 22/03/2002 à 18:45 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 ?

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
niuob Le 22/03/2002 à 20:08 Ce serait int**tableau plutôt ou int *tableau[]
Zeph Le 22/03/2002 à 20:13 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.

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
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.
Zeph Le 23/03/2002 à 08:37 ok, donc je dois créer un autre tableau qui contiendra, par exemple, 1 pour un nombre et 2 pour une chaine ?

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
for(n=0; n<6000; n++)
size+=sizeof(tableau[n]);
Zeph Le 23/03/2002 à 13:57 whow !
y'a pas moyen de faire un trucs genre :
int tableau[6000]=malloc(6000*sizeof(int)) ?

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

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
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));
Zeph Le 23/03/2002 à 14:28 ah ok, je peux pas directement déclarer un tableau ac malloc ?

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
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.
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 !!!
Ils contiennent quoi, ces tableaux ?
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 !
Zeph Le 24/03/2002 à 18:37 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
?

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
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.