Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

déclaration tableau taille variable

30 réponses
Avatar
Nicolas Aunai
salut,


ayant a l'origine appris le C, j'apprend a présent le C++, et j'ai été
un peu "choqué" de voir que je pouvais faire une déclaration de tableau
ainsi :

int x;
cin>>x;
int tab[x];


je pensais, qu'il n'y avait que 4 méthodes pour déclarer un tableau :

#define MAX 20

int tab[MAX];

ou bien

int tab[20]

ou bien

const int x = 20;

int tab[x];

et enfin

int tab[]={2,3,4};


depuis quand la déclaration d'un tableau avec une variable non
constante est-elle autorisée en C++ ? n'est-ce pas un peu dangereux si
par exemple ma variable est mal "controlée" (ex : x=29299939391992991)

merci

--
Nico,
http://astrosurf.com/nicoastro
messenger : nicolas_aunai@hotmail.com

10 réponses

1 2 3
Avatar
Fabien LE LEZ
On 17 Dec 2003 10:24:11 GMT, Marc Boyer
wrote:

Le pire ennemi du programmeur n'est-il pas l'utilisateur ?


C'est d'ailleurs réciproque.

--
;-)

Avatar
Gabriel Dos Reis
Marc Boyer writes:

| Fabien LE LEZ wrote:
| > On 1 Dec 2003 00:03:32 -0800, wrote:
| >
| >> Égal d'où vient la valeur ; un
| >>programme qui utilise des valeurs qui vient du reseau sans les valider
| >>est un programme erroné.
| >
| > D'ailleurs on a vite fait de passer plus de temps et de pondre plus de
| > code pour la gestion des erreurs que pour le programme proprement
| > dit...
|
| Le pire ennemi du programmeur n'est-il pas l'utilisateur ?

Le programmeur lui-même.

-- Gaby
Avatar
Michel Michaud
Dans news:brpasb$25m$, Marc
Le pire ennemi du programmeur n'est-il pas l'utilisateur ?


Non, c'est le copier-coller. Vraiment.

--
Michel Michaud
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/

Avatar
kanze
Fabien LE LEZ wrote in message
news:...
On 1 Dec 2003 00:03:32 -0800, wrote:

Égal d'où vient la valeur ; un programme qui utilise des valeurs qui
vient du reseau sans les valider est un programme erroné.


D'ailleurs on a vite fait de passer plus de temps et de pondre plus de
code pour la gestion des erreurs que pour le programme proprement
dit...


Tout dépend de l'application, mais en général, je compte environ deux
tiers du code pour la gestion des erreurs -- plus, si j'ai une interface
directe avec un être humain.

--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16


Avatar
kanze
"Michel Michaud" wrote in message
news:<2_YDb.9133$...
Dans news:brpasb$25m$, Marc
Le pire ennemi du programmeur n'est-il pas l'utilisateur ?


Non, c'est le copier-coller. Vraiment.


Sauf s'il est payé à la ligne.

--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16


Avatar
Alain Naigeon
a écrit dans le message news:

"Michel Michaud" wrote in message
news:<2_YDb.9133$...
Dans news:brpasb$25m$, Marc
Le pire ennemi du programmeur n'est-il pas l'utilisateur ?


Non, c'est le copier-coller. Vraiment.


Sauf s'il est payé à la ligne.


Vous n'avez pas la même définition de operator= pour la classe Ligne !

--

Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - - Strasbourg, France



Avatar
kanze
"Alain Naigeon" wrote in message
news:<3fe2487e$0$29085$...
a écrit dans le message news:

"Michel Michaud" wrote in message
news:<2_YDb.9133$...
Dans news:brpasb$25m$, Marc
Le pire ennemi du programmeur n'est-il pas l'utilisateur ?


Non, c'est le copier-coller. Vraiment.


Sauf s'il est payé à la ligne.


Vous n'avez pas la même définition de operator= > pour la classe Ligne !


Je me suis déjà trouvé une fois sur un projet où pour mesurer la
productivité d'un programmeur, le chef faisait :

wc -l ` find ~programmeur -name '*.[hc]' `

--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16




Avatar
Didier
sinon, pour le tableau de taille variable ? comment faut-il faire ?

merci

didier

a écrit dans le message de
news:
Fabien LE LEZ wrote in message
news:...
On 1 Dec 2003 00:03:32 -0800, wrote:

Égal d'où vient la valeur ; un programme qui utilise des valeurs qui
vient du reseau sans les valider est un programme erroné.


D'ailleurs on a vite fait de passer plus de temps et de pondre plus de
code pour la gestion des erreurs que pour le programme proprement
dit...


Tout dépend de l'application, mais en général, je compte environ deux
tiers du code pour la gestion des erreurs -- plus, si j'ai une interface
directe avec un être humain.

--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16




Avatar
kanze
"Didier" wrote in message
news:<bs7jab$s0m$...

sinon, pour le tableau de taille variable ? comment faut-il faire ?


std::vector.

--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16

Avatar
adebaene
"Didier" wrote in message news:<bs7jab$s0m$...
sinon, pour le tableau de taille variable ? comment faut-il faire ?

merci


Solution C++ standard et vérifiant que l'allocation a eu lieu :

std::vector<int>::size_type x;
cin >> x; //validation de la saisie omise.
try
{
std::vector<int> tableau (x);
}
catch(std::bad_alloc)
{
//allocation impossible, gérer l'erreur.
}

Arnaud

1 2 3