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

Langage C++ Discussion :

Erreur: Run-Time check failure


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 48
    Par défaut Erreur: Run-Time check failure
    Bonjour,

    J'ai un petit exercice de C++ à faire où on me demande de créer un array A avec certaines valeurs, puis de créer un deuxième array B. Il faut transposer A dans B puis trier à l'intérieur de B. Enfin, il faut créer un pointeur C sur B, et utiliser l'arithmétique des pointeurs pour afficher le contenu de B.
    Mon code tourne et s'affiche mais j'obtiens à la toute fin, une erreur: "Run-Time check failure#2 - Stack around the variable 'A' was corrupted".

    Voici mon code:

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    #include <iostream>
    using namespace std;
     
    int main()
    {
     
    	//declare the new array and initialize it
    	double A[10] = { 5.6,3.2,1.0,199,32,5.7,9.9,11.0,999,0.0001 };
     
    	//declare the new array B with 10 elements
    	double B[10];
     
    	//declare a temporary variable to store before swap
    	double sp_before;
     
    	cout << "Exercise" << endl;
     
    	//copy all the elements of A into B
    	for (int i = 0; i<sizeof(A); i++)
    	{
    		B[i] = A[i];
    	}
     
    	//Sort B using the bubblesort provided and translated into C++ code
     
    	double n = sizeof(A)/sizeof(A[0]); //length of A
    	bool swapped=true;
     
    	while (swapped != false)
    	{
    		swapped = false;
    		for (int i = 1; i<n; i++)
    		{
    			if (B[i - 1]>B[i])
    			{
    				//we swap
    				sp_before = B[i - 1];
    				B[i - 1] = B[i];
    				B[i] = sp_before;
    				swapped = true;
    			}
    		}
    	}
     
    	//Loop to verify the elements in B...
    	for (int i = 0; i<n ; i++)
    	{
    		cout << B[i] << endl;
    	}
     
    	//Create pointer C to B
    	double *C = B; //create and assign pointer C to array B
     
    	//display using pointer's arithmetic
            for (int i = 0; i < n; i++)
    	{
    		cout << "Value of the " << i << "th element of B is: " << *C << endl;
    		C++;
    	}
     
     
    	return 0;
    }
    Pouvez-vous m'aider à interpréter et corriger cette erreur?

    D'avance merci.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par défaut
    Etant donné que tu sembles savoir comment avoir la taille et qu'elle est définie par double n = sizeof(A)/sizeof(A[0]); //length of A, pourquoi as-tu une première boucle sur sizeof(A) uniquement qui est clairement hors borne et entraîne cette erreur ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 48
    Par défaut
    Bonjour,

    Merci pour la réponse. C'est tout à fait juste, j'ai corrigé.

  4. #4
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Ceci dit, tu pourrais t'éviter bien des soucis (tu aurais pu t'éviter celui-ci en particulier) en abandonnant les tableaux "C style" au profit des fonctionnalités proposées par C++ :

    Pour A et pour B, vu que la taille est connue à la compilation, tu aurais ainsi pu utiliser la classe std::array. Et, pour les tableaux dont la taille varie à l'exécution, tu aurais intérêt à te tourner vers std::vector (sans oublier tous les autres types de collection dynamique adaptés à certaines situation particulières )
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

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

Discussions similaires

  1. Erreur avec pointeur Run-Time Check Failure #3
    Par Cornichon dans le forum Débuter
    Réponses: 5
    Dernier message: 20/09/2010, 13h19
  2. erreur Run-Time Check Failure #3
    Par ffcool21 dans le forum C++
    Réponses: 7
    Dernier message: 29/04/2008, 16h34
  3. probleme avec C++ Run-Time Check Failure #3
    Par acnalbasac dans le forum C++
    Réponses: 3
    Dernier message: 14/04/2007, 14h57
  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