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 :

Erreur à l'allocation (char**)malloc(taille*sizeof(char*))


Sujet :

C

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 6
    Par défaut Erreur à l'allocation (char**)malloc(taille*sizeof(char*))
    Bonjour,

    ce code ne s’exécute pas et je sais pas le problème ou il est ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        int i,j,n;
        char** t;
     
     
        printf("entrer N :");
        scanf("%i",&n);
     
        *t=(char**)malloc(n*sizeof(char*));
        for(i=0,i<n;i++)
        {
            t[i]=(char*)malloc(n*sizeof(char));
        }

    Merci d'avance.

  2. #2
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Qu'appelles tu "ne s'exécute pas".

    Par construction, un programme n'est pas compilé ou il peut être exécuté.

    Par contre, en deux secondes, j'ai vu des mallocs sans free, et un malloc fonction d'un scanf
    Ça sent l'erreur de segmentation méritée.

  3. #3
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Que fait le programme, et qu'attends-tu à la place ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Est-ce que tu as fait un code SSCCE (short, self contained, correct example) www.sscce.org ?

    Si oui, est-ce que ton code compile ? Est-ce que tu as des warnings de ton compilateur ? Les as-tu corrigé ?

    en vrac:
    c'est pas *t
    tu ne vérifies pas le code de retour de malloc
    tu as une virgule dans ta boucle for au lieu d'un point-virgule

    Bon, et puis lire une entrée clavier avec scanf, c'est déconseillé.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 6
    Par défaut
    La compilation s’arrête lors de la création des table de caractères
    Ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    *t=(char**)malloc(n*sizeof(char*));
     for(i=0,i<n;i++)
        {
            t[i]=(char*)malloc(n*sizeof(char));
        }
    Mais si je déclare une matrice comme cet exemple char t[100][100] ;
    je trouve pas d’erreur

  6. #6
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Si la compilation s'arrête, un compilateur raisonnable te hurle dessus, avec plus ou moins de véhémence.
    En lisant ce qu'il dit, tu sauras pourquoi il rouspète.

    Pour l'instant, nous autres sommes dépendant de BouleDeCristal, le super plugin de débuggage à l'aveugle, malheureusement en panne actuellement.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 6
    Par défaut
    les erreur de compilation sont :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ligne 14    *t=(char**)malloc(n*sizeof(char*));
    ligne 15    for(i=0,i<n;i++)
                    {
                        t[i]=(char*)malloc(n*sizeof(char));
                    }

    ligne 14 warning: assignment from incompatible pointer type [enabled by default]
    ligne 15 warning: value comuted is not used [-Wunused-value]
    ligne 15 error: expected ';' before ')' token

  8. #8
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Tout t'a déjà été dit par gangsoleil.

    Comment comprends-tu ces messages d'erreur?

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 6
    Par défaut
    J’ai encore beaucoup de difficultés de détection et de comprendre les messages d’erreurs,
    Mais enfin J’ai découvert l’erreur d’où il vient.

    Merci pour vous

  10. #10
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Justement, j'essaie de t'aider à les comprendre, mais pour ça, il faut que tu nous dises comment tu les comprends, pour le moment.

  11. #11
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Citation Envoyé par amharrar.mostafa Voir le message
    ligne 14 warning: assignment from incompatible pointer type [enabled by default]
    Ligne 14, tu as un probleme entre le type de la variable (ce qui est à gauche du signe =) et le type de la fonction appelée (ce qui est à droite du signe =). Regarde quels sont les types des deux côtés, et corrige celui qui ne va pas.
    Citation Envoyé par amharrar.mostafa Voir le message
    ligne 15 warning: value comuted is not used [-Wunused-value]
    ligne 15 error: expected ';' before ')' token
    2 erreurs sur la même ligne, elles sont souvent liées. Ici, la deuxième erreur est plus parlante : il manque un ';' au compilateur pour continuer. Donc il faut regarder quelle est la syntaxe du for : for, suivi de '(', suivi de l'initialisation de la variable (optionel), suivi de ';', suivi de la borne sup (optionel), suivi de ';', suivi de l'incrémentation (optionnel).
    S'il te dit qu'il manque un ;, c'est qu'il n'en trouve qu'un seul au lieu des deux attendus. C'est ce que je te disais lorsque je disais que tu as une virgule a la place d'un point virgule.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

Discussions similaires

  1. malloc sur char* (avec le sizeof d'un char[])
    Par fcjunic dans le forum Débuter
    Réponses: 2
    Dernier message: 01/02/2011, 08h32
  2. char [] et taille
    Par sheep_one dans le forum C
    Réponses: 4
    Dernier message: 28/04/2010, 08h44
  3. Malloc d'un char ** du maillon d'une liste chainee
    Par student_ dans le forum Débuter
    Réponses: 4
    Dernier message: 03/01/2010, 12h56
  4. caster un int en char sur taille fixe
    Par devdebutantajax dans le forum Windows
    Réponses: 14
    Dernier message: 01/11/2008, 14h24
  5. Initialisation, const char *, malloc
    Par kromartien dans le forum C
    Réponses: 8
    Dernier message: 17/06/2007, 23h53

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