Passage de la taille d'un tableau en argument - C - Programmation
Marsh Posté le 26-08-2005 à 16:09:20
Bien sûr !
Le temps de consulter ma boule de cristal...
Hmm. Marche pas. Bon, ben poste ton code qui ne fonctionne pas, alors.
Marsh Posté le 26-08-2005 à 16:10:43
bin les erruers de compilation sous MVC++ sont :
expect constant expression
mon code il est tout simple
void f(int n)
{
double arr[n];
}
sous dev c++ ca passe
on ma suggeré que ct peut etre que certaine version de C acceptait ce genre de choses (les + recentes probablement) et pas d'autres
Marsh Posté le 26-08-2005 à 16:13:19
Normal, ça ne fonctionne qu'en C99 ce que tu fais, ta version de VC++ n'implémente peut-être pas cette fonctionnalité.
Solution :
Code :
|
Marsh Posté le 26-08-2005 à 16:15:25
nan dsl ca marche pas
je voulais dire de mettre const int n
Marsh Posté le 26-08-2005 à 16:16:28
Dans le sujet, y a marqué "[C]"
Maintenant si c'est en C++, "new" n'est pas "meilleur", il est obligatoire.
malloc() en C++, c'est une hérésie
Marsh Posté le 26-08-2005 à 16:16:42
Tu n'es pas assez vague, pourrais-tu être moins spécifique ?
Marsh Posté le 26-08-2005 à 16:20:36
Ben c'est normal, c'est défini dans la norme C99 cette fonctionnalité, et je ne connais pas de compilateur qui l'implémente en entier encore, la plupart en sont encore au C89
Utilise la solution que je te propose, avec malloc().
Oops, c'est vendredi j'ai oublié le free()
J'édite mon message
Marsh Posté le 26-08-2005 à 16:21:21
en C ANSI et C++, la taille des tableaux est statique par définition (connue à la compilation). C99 permet une taille dynamique, mais c'est une technique généralement déconseillé en faveur de l'allocation dynamique
Marsh Posté le 26-08-2005 à 18:02:19
Taz a écrit : en C ANSI et C++, la taille des tableaux est statique par définition (connue à la compilation). C99 permet une taille dynamique, mais c'est une technique généralement déconseillé en faveur de l'allocation dynamique |
En plus, je ne connais pas d'implémentation conforme (gcc 4.x : VLA : 'broken')
Marsh Posté le 26-08-2005 à 18:02:53
Spoiler : |
Marsh Posté le 26-08-2005 à 18:07:48
0x90 a écrit :
|
Bah non. Pas standard et complètement obsolete.. Use malloc() / free().
Marsh Posté le 26-08-2005 à 18:13:25
Emmanuel Delahaye a écrit : Bah non. Pas standard et complètement obsolete.. Use malloc() / free(). |
d'ou le combo [spoiler]/
m'enfin ca reste une fonction _amusante_ à utiliser, avec ce petit piquant dans l'échine à chaque exécution... mmm...
Marsh Posté le 26-08-2005 à 16:04:15
hi
dites voilà jai un probleme
je passe par argument d'une fonction la taille dun tableau que je déclare au début de la fonction meme
ca compile avec Dev C++ mais avec Microsoft Visual C++ ca amrche pas
quelqu'un peut m'expliquer?
on a le droit de faire ça ou pas?
merci d'avance