IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

error: array size missing


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    sans emploi
    Inscrit en
    Février 2014
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2014
    Messages : 365
    Par défaut error: array size missing
    Bonjour,

    Comment déclarer ce tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    #include<stdio.h>
     
    int main(int argc, char const *argv[])
    {
        int x=1, i=0, nombre_element_lu;
        int tableau_notes [];
     
        printf("saisisez une liste de notes (-1 pour fin): \n");
        while (x>=0)
        {
            scanf("%f", &x);
            tableau_notes[i++]=x;
        }
     
        nombre_element_lu=--i;
     
        return 0;
    }
    message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    error: array size missing in 'tableau_notes'
         int tableau_notes [];

  2. #2
    Membre éclairé
    Homme Profil pro
    sans emploi
    Inscrit en
    Février 2014
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2014
    Messages : 365

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 801
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par binco Voir le message
    Hé oui, un tableau doit avoir une taille concrète. Donc soit tu écris int tableau_notes[]={..., ..., ..., ...} et le compilateur "comptera" combien d'éléments se trouvent entre les accolades et rajoutera ce nombre dans les crochets, soit tu écris int tableau_notes[n] "n" étant un nombre strictement supérieur à 0 et pas trop gros pour ne pas exploser ta pile (la zone mémoire dans laquelle se trouvent tes variables).

    Concernant ton programme, ton while (x >= 0) est dangereux car ça ne limite absolument pas le nombre de notes. Imaginons que tu aies int tableau_notes[5] et que l'utilisateurs saisisse 1, 8, 4, 7, 12, 18. A chaque saisie x est supérieur à 0 donc la note saisie va dans le tableau de notes. Sauf qu'il y a 6 notes tandis que ton tableau et limité à 5 => UB
    Il te faut trouver un test qui empêche quoi qu'il arrive de faire saisir plus de notes que ce que le tableau peut en contenir. Sans compter que d'un point de vue mathématique, une note à 0 est tout à fait possible mais interdite par ton algo.

    Et ta variable "i" ne sert à rien (tu utiliserais "nombre_element_lu" à la place le programme marcherait pareil). Mais si tu veux quand-même utiliser "i", alors la ligne nombre_element_lu=--i est mauvaise car elle force "i" à changer (donc décrément et affectation alors que "i" n'est plus utilisé ensuite donc tu affectes une valeur à une variable que tu n'utlises plus). L'instruction adéquate serait nombre_element_lu=i-1.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre éclairé
    Homme Profil pro
    sans emploi
    Inscrit en
    Février 2014
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2014
    Messages : 365
    Par défaut
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Array sizes are inconsistent
    Par Mzr dans le forum Langage
    Réponses: 3
    Dernier message: 14/04/2013, 22h31
  2. [1.x] Fatal Error: memory size exhausted
    Par bigltnt dans le forum Symfony
    Réponses: 5
    Dernier message: 14/09/2010, 22h27
  3. Réponses: 1
    Dernier message: 03/05/2009, 21h43
  4. Runtime error : Array size of PUT is too small
    Par Toine11235 dans le forum Fortran
    Réponses: 7
    Dernier message: 02/03/2009, 08h35
  5. Réponses: 5
    Dernier message: 12/02/2009, 14h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo