PB de "const" pour un tableau en C

Signaler
Messages postés
9
Date d'inscription
mercredi 23 janvier 2002
Statut
Membre
Dernière intervention
21 mars 2003
-
Messages postés
9
Date d'inscription
mercredi 23 janvier 2002
Statut
Membre
Dernière intervention
21 mars 2003
-
est-on obligé de definir une taille pour un tableau declaré en const?
faut-il donné la taille dans cette dans le .h et dans le .c
dernier question:
a-t-on besoin de donné un type
ex :

const ? Table1[];

const int Table2[];

Merci

10 réponses

Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

Oui, tu es obligé de définir le type des éléments contenus dans ton tableau.
En C++, il existe les templates qui permettent de manipuler des types abstraits.
Messages postés
9
Date d'inscription
mercredi 23 janvier 2002
Statut
Membre
Dernière intervention
21 mars 2003

merci
même pour un tableau declaré en const
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

Oui, le const est juste là pour dire "constant", c'est à dire que l'on ne peut pas modifier le tableau durant l'exécution.
Messages postés
21
Date d'inscription
mardi 23 juillet 2002
Statut
Membre
Dernière intervention
14 août 2002

pas d'accord... tu declare (et c'est du C) juste 1 pointeur ..... tu alloue la 1ere case, et apres, au fur et a mesure de tes besoins, tu alloue au fur et a mesure les cases de tes tableaux ...... (operateur new)
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

Tu as un exemple de code ?
Messages postés
21
Date d'inscription
mardi 23 juillet 2002
Statut
Membre
Dernière intervention
14 août 2002

int i;
static char *var;
var=new char[10];
var[1]='a';
for (i=2;i<=10;i++)
{
//var[i]=(char)malloc(sizeof(char));
//var[i]=(char)new char[1];
var[i]='a';
}
var[11]=(char)malloc(sizeof(char)); // var[11] alors que var a ete cree avec 1 taille de 10
var[11]='b';
var[12]=(char)malloc(sizeof(char)); // var[12] alors que var a ete cree avec 1 taille de 10
var[12]='z';
var[13]=(char)malloc(sizeof(char)); // var[13] alors que var a ete cree avec 1 taille de 10
var[13]='u';
MessageBox(var,"e",MB_OK); //pour afficher

c juste 1 exemple.... d'allocation au fur et a mesure.... des besoins
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

Mais où le 'const' dont tu me parlais ?????
Messages postés
21
Date d'inscription
mardi 23 juillet 2002
Statut
Membre
Dernière intervention
14 août 2002

moi je parlais d'1 const????

non... la question etait pour la declaration d1 tableau... tu dois les declarer avec 1 taille const.. et cette portion de code permet de declarer 1 tableau... avec 1 const en taille puis o fur et a mesure d'accroitre sa taille....

si g mal compris la question posée.. c a celui qui a lancé le thread qu'il fo le dire ! (james)
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

La question du début était:

"est-on obligé de definir une taille pour un tableau declaré en const?
faut-il donné la taille dans cette dans le .h et dans le .c
dernier question:
a-t-on besoin de donné un type
ex :

const ? Table1[];

const int Table2[];

Merci"

Je pense donc qu'il s'agit bien du mot clef const.
Messages postés
9
Date d'inscription
mercredi 23 janvier 2002
Statut
Membre
Dernière intervention
21 mars 2003

le pb était de declarer un tableau en const
ex:
const var[taille_var];