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 :

Run-Time Check Failure #2 - Stack around the variable 'tab' was corrupted


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Run-Time Check Failure #2 - Stack around the variable 'tab' was corrupted
    Salut tout le monde,

    Je programme sous Visual Studio 2005 et à la sortie du main VC me renvoie l'erreur ci dessous:

    "Run-Time Check Failure #2 - Stack around the variable 'tab' was corrupted"

    Voici mon code pour plus de détail:

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    #include <stdio.h>
    #include <string.h>
    #include <ctype.h>
    #include <stdlib.h>
     
    #define LINE_MAX (int) (10)
     
    void read_input(char** buff)
    {
        int i = 0, j = 0, c;
     
        //reads one line from stdin
        while((c = fgetc(stdin)) != '\n')
        {
            if (!isspace(c))
            {
                char *ptr = buff[i];
                buff[i] = (char*)realloc(ptr, (j+1)*sizeof(char));
                buff[i][j] = c;
                j++;
            }
            else
            {
                buff[i][j] = '\0';
                i++;
                j = 0;
            }
        }
    }
     
    int main(int argc, char** argv)
    {
        int N = 0, M = 0, m = 0;
        char* tab = NULL;
        char** buff = &tab;
     
        *buff = (char*)malloc(LINE_MAX * sizeof(char));
        for(m; m<LINE_MAX; m++)
        {
            buff[m] = (char*)malloc(sizeof(char));
        }
     
        read_input(buff);
     
        N = atoi(buff[0]);
        M = atoi(buff[1]);
     
        return 0;
    }
    Le code fonctionne exactement comme prévu jusqu'au "return 0" où ça plante...

    Est ce que quelqu'un voit la source de l'erreur ? Merci pour les remarques ...

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Buff pointe sur UN pointeur, et toi tu l'utilises comme un tableau de LINE_MAX pointeurs.

Discussions similaires

  1. Stack around the variable 'R12' was corrupted.
    Par Marty MacFly dans le forum Débuter
    Réponses: 5
    Dernier message: 20/06/2011, 09h40
  2. Run-Time Check Failure : Stack corrupted
    Par melleb dans le forum C++
    Réponses: 19
    Dernier message: 10/06/2009, 16h08
  3. Stack corrupted - Run-Time Check Failure
    Par poukill dans le forum C++
    Réponses: 2
    Dernier message: 16/07/2008, 23h31
  4. [VC++2005 express]Run-Time Check Failure #2
    Par méphistopheles dans le forum Visual C++
    Réponses: 3
    Dernier message: 19/01/2007, 07h13
  5. Run-Time Check Failure #2
    Par -Mod- dans le forum DirectX
    Réponses: 5
    Dernier message: 10/08/2006, 08h06

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