所以我遇到了Visual Studio 2013的问题 此代码不显示编译错误,但显示调试错误
围绕变量' Joueur'已经腐败了。
这是代码:
== Source.cpp
#include <stdlib.h>
#include <stdio.h>
#include "Header.h"
int main()
{
Personne Joueur[2];
printf("***** Bienvenue ***** \n \n \n");
int k ;
for (k = 0; k < 3; k++)
{
printf("Bonjour Joueur %d :\n", k+1);
printf("Nom: ");
fgets(Joueur[k].Nom,50,stdin);
printf("Votre nom est: %s", &Joueur[k].Nom);
printf("\n \n");
}
return 0;
}
== Header.h
typedef struct Personne Personne;
struct Personne
{
char Nom[1500];
char Prenom[1500];
int Age;
int Tel;
double Moy;
};
答案 0 :(得分:5)
更改Personne Joueur[2]; -> Personne Joueur[3];
你没有足够的内存来容纳2个以上的结构。
答案 1 :(得分:0)
您正在尝试将更多值添加到Joueur[2]
而不是内存中。因此,没有足够的内存来容纳两个以上的值。
您正在超出分配的内存,并调用未定义的行为。因此,定义一个足够大的数组来保存值。因此,请根据 sas 回答更改数组值。