CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C++] Stack around the variable '' was c

Stryker7778
Stryker7778
Niveau 9
19 novembre 2013 à 20:23:31
  • corrupted (la variable c'est soit vecteur2[variable],soit vecteurresult[variable]).

Voilà ce que j'obtiens lorsque je déboggue mon programme :(
Le programme fonctionne correctement jusqu'au moment où le programme doit quitter et m'envoie le message d'erreur.
Pourriez-vous m'aider ?
Voilà le code :

  1. include<stdio.h>
  2. include<stdlib.h>
  3. define MAX 5

void main()
{
int vecteur1[MAX];
int vecteur2[MAX];
int vecteurresult[MAX];
int variable;

vecteur1[MAX]=0;
vecteur2[MAX]=0;
vecteurresult[MAX]=0;

printf("Veuillez entrer 6 valeurs pour le vecteur 1 :\n");
scanf("%d",&vecteur1[0]);
scanf("%d",&vecteur1[1]);
scanf("%d",&vecteur1[2]);
scanf("%d",&vecteur1[3]);
scanf("%d",&vecteur1[4]);
scanf("%d",&vecteur1[5]);

flushall();

system("cls");

printf("Veuillez entrer 6 valeurs pour le vecteur 2 :\n");
scanf("%d",&vecteur2[0]);
scanf("%d",&vecteur2[1]);
scanf("%d",&vecteur2[2]);
scanf("%d",&vecteur2[3]);
scanf("%d",&vecteur2[4]);
scanf("%d",&vecteur2[5]);

flushall();

system("cls");

printf("Resultats :\n");
for(variable=0;variable<=MAX;variable++)
{
vecteurresult[variable] = vecteur1[variable] + vecteur2[variable];
printf("%d\n",vecteurresult[variable]);
}
system("pause");
}

droidz
droidz
Niveau 2
19 novembre 2013 à 23:31:55

Essaye de remplacer:

for(variable=0;variable<=MAX;variable++)

par

for(variable=0 ; variable < MAX ; variable++)

Pseudo supprimé
Pseudo supprimé 20 novembre 2013 à 00:59:00

Tu accède à un index trop loin ici :
vecteur1[MAX]=0;
vecteur2[MAX]=0;
vecteurresult[MAX]=0;

Lorsque tu déclare un tableau comme ça :
tab[MAX];

Les index disponible sont 0 jusqu'à MAX-1. La même remarque pour tes 6 scanf, un scanf de trop ou ton MAX est trop petit de 1.

Stryker7778
Stryker7778
Niveau 9
20 novembre 2013 à 17:28:09

Résolu :-p
En gros il fallait virer le

vecteur1[MAX]=0;
vecteur2[MAX]=0;
vecteurresult[MAX]=0;

et ensuite remplacer <= par < dans le for, et enfin changer la valeur de MAX par 6, d'où :

  1. include<stdio.h>
  2. include<stdlib.h>
  3. define MAX 6

void main()
{
int tabun[MAX];
int tabdeux[MAX];
int result[MAX];
int v;

printf("Veuillez entrer 6 valeurs pour le vecteur 1 :\n");
scanf("%d",&tabun[0]);
scanf("%d",&tabun[1]);
scanf("%d",&tabun[2]);
scanf("%d",&tabun[3]);
scanf("%d",&tabun[4]);
scanf("%d",&tabun[5]);

flushall();

system("cls");

printf("Veuillez entrer 6 valeurs pour le vecteur 2 :\n");
scanf("%d",&tabdeux[0]);
scanf("%d",&tabdeux[1]);
scanf("%d",&tabdeux[2]);
scanf("%d",&tabdeux[3]);
scanf("%d",&tabdeux[4]);
scanf("%d",&tabdeux[5]);

flushall();

system("cls");

printf("Resultats :\n");
for(v=0 ; v < MAX ; v++)
{
result[v] = tabun[v] + tabdeux[v];
printf("%d\n",result[v]);
}
system("pause");
}

(J'ai aussi changé les noms dans les déclarations...)

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment