Ok, vous voulez poser une question ésotérique, alors s'il vous plaît construire un complet.
Comment avez-vous exécuté le test? Que voulez-vous dire par accident? Quelle était votre sortie? Avez-vous simplement compilé, compilé et lié, ou compilé et lié et débogué? Comment votre compilateur est-il configuré? Où allez-vous avec cette expérience?
des phrases comme: « quelque chose comme » le « mal » ne sont pas assez d'information pour être utile
SUIVI:
Instinctivement je vais deviner que cet accident est une conséquence d'un commutateur d'optimisation compilateur avec que vous autorisez le compilateur à faire certaines hypothèses auxquelles vous n'êtes pas conforme.
mes:
suppositions
1- Le principal (vide) vide (sans;) fait partie d'un commentaire que vous faites, mais pas partie du test que vous avez soumis.
2- Votre programme est incorrect, mais cela est délibéré afin d'étudier le comportement de l'environnement de compilation/éditeur de liens/exécution.
Si c'est effectivement le cas, vous devez réduire la complexité du scénario de test.
Veuillez simplifier le test au strict minimum nécessaire pour provoquer un accident. Je ne peux pas le faire pour vous, je n'ai pas les bonnes versions du logiciel installé, de toute façon, c'est votre expérience.
ce plantage?
struct foo { int i; double d; };
struct foo main(void)
{
int a=0;
return a;
}
ou même cet exemple le plus minimal?
void * main(void)
{
return 0;
}
est-il de cela (je doute):
int main(double argc, char ** argv)
{
return 0;
}
Vous avez l'idée. réduire le crash à son essence. Venez avec un programme qui est sans erreur, sauf pour le une chose qui va le faire planter.
Puis rapportez.
Le compilateur ne devrait pas planter du tout, c'est un bug avec le compilateur s'il se bloque en essayant de comprendre votre code. – dreamlax
+1 pour le mauvais exemple. Il m'a fallu un peu de temps pour comprendre ce que vous étiez en train de faire :) En outre, le compilateur VS2010 C++ impose maintenant la signature de main(), mais le code ci-dessus ne se compile plus. – Alan
Essayez de fermer la structure avec un point-virgule. Voir si cela change le comportement du compilateur. Il peut en effet s'agir d'un bug de compilateur. –