déclaration de taille de tableau en C

déclaration de taille de tableau en C - C++ - Programmation

Marsh Posté le 30-05-2003 à 19:10:57    

salut,
je voudrais déclarer un tableau dont la taille dépendra d'une variable initialisé par l'utilisateur.
merci de votre aide

Reply

Marsh Posté le 30-05-2003 à 19:10:57   

Reply

Marsh Posté le 30-05-2003 à 19:12:50    

tu vois, je suis tellement fatigué de ce genre de question alacon posé par qqun qui n'a meme pas cherché 20s sur google et qui vient juste ici quemander la solution de son tp que je vais te donner la solution : scanf+malloc
 
On va dire que j'ai été eu a l'usure

Reply

Marsh Posté le 30-05-2003 à 20:00:40    

je voie pas exactement l'interet de repondre a cette question vu que le gars va pas pouvoir aller plus loin et va reposer trente autres questions plus debiles les unes que les autres derrières.

Reply

Marsh Posté le 30-05-2003 à 22:48:52    

fais une pile  [:troed]

Reply

Marsh Posté le 31-05-2003 à 06:01:22    

darkthunder a écrit :

salut,
je voudrais déclarer un tableau dont la taille dépendra d'une variable initialisé par l'utilisateur.
merci de votre aide

c'est possible en C99, dans une certaine limite (du à la pile). mais la m&nère générique ANSI est de passer par une allocation dynamique et un pointeur avec les fonctions de la famille malloc

Reply

Marsh Posté le 31-05-2003 à 14:55:29    

++Taz a écrit :

c'est possible en C99, dans une certaine limite (du à la pile). mais la m&nère générique ANSI est de passer par une allocation dynamique et un pointeur avec les fonctions de la famille malloc


 
ouais, me souviens plus ou, mais j'ai vu que ceci etait "plus ou moins standard" :
 

Code :
  1. void truc(int a)
  2. {
  3.     char tab[a];
  4. }


 
(mais bon, j'ai pas vu bcp de compilo qui l'acceptait...)

Reply

Marsh Posté le 31-05-2003 à 16:13:56    

ça fait partie de la dernière révision du C (pour gcc > 3, option -std=c99)

Reply

Marsh Posté le 31-05-2003 à 17:55:30    

darkthunder a écrit :

salut,
je voudrais déclarer un tableau dont la taille dépendra d'une variable initialisé par l'utilisateur.
merci de votre aide

Code :
  1. int main()
  2. {
  3.    int *tableau; //en supposant que tu veuille faire un tableau d'entier
  4.    int taille;
  5.    scanf("%d",&taille); //on entre la taille du tableau
  6.    tableau=(int *)malloc(taille*sizeof(int));
  7.    ...
  8.    free(tableau); //ne pas oublier de desalouer la memoire
  9.    return 0;
  10. }

Reply

Marsh Posté le 01-06-2003 à 09:31:35    

cool, ton code.. et si je rentre -50 il marche encore?

Reply

Marsh Posté le 01-06-2003 à 09:48:06    

++Taz a écrit :

cool, ton code.. et si je rentre -50 il marche encore?

non, mais faut etre con pour rentrer une taille de -50 :heink:  
Et puis bon, c'etait juste un exemple pour lui montrer comment on fait un tableau dynamique...

Reply

Marsh Posté le 01-06-2003 à 09:48:06   

Reply

Marsh Posté le 01-06-2003 à 09:54:50    

ben ce que tu comprends pas, c'est que l'utilisateur est pas con, c'est ton programme qui est mauvais
 
bon, bon, je veux bien, mais commence à utiliser les types non signés (unsigned et size_t), malloc attends un size_t, donne lui en un

Reply

Marsh Posté le 01-06-2003 à 10:33:46    

++Taz a écrit :

ben ce que tu comprends pas, c'est que l'utilisateur est pas con, c'est ton programme qui est mauvais
 
bon, bon, je veux bien, mais commence à utiliser les types non signés (unsigned et size_t), malloc attends un size_t, donne lui en un

:jap: , c'est pas bete :D  
Faut pas m'en vouloir, on  nous a appris a faire ca avec des int :sarcastic:

Reply

Marsh Posté le 01-06-2003 à 10:38:30    

++Taz a écrit :

ça fait partie de la dernière révision du C (pour gcc > 3, option -std=c99)


 
oops je crois que je viens de comprendre pourquoi un tp que j'ai rendu la semaine dernière ne passait pas sur le compilo des sgi O2  [:audi]

Reply

Marsh Posté le 01-06-2003 à 13:31:35    

merci pour vos réponses constructives.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed