Невозможно определить структуру внутри main(). Я попытался следующие только получить Segmentation Fault:определение структуры внутри main() вызывает ошибку сегментации
#include <stdio.h>
#include <unistd.h>
#include <strings.h>
#define TRUE 1
void main(int argc,char **argv)
{
struct test_struct
{
char test_name[50];
char summary_desc[200];
char result[50];
};
struct suite_struct
{
char suite_name[50];
struct test_struct test[500];
int test_count;
int passed;
int failed;
int unresolved;
int notrun;
}suite[500];
int a,b;
for (a=0;a<500;a++)
{
strcpy(suite[a].suite_name,"");
for (b=0;b<500;b++)
{
strcpy(suite[a].test[b].test_name,"");
strcpy(suite[a].test[b].summary_desc,"");
strcpy(suite[a].test[b].result,"");
}
suite[a].test_count=0;
suite[a].passed=0;
suite[a].failed=0;
suite[a].unresolved=0;
suite[a].notrun=0;
}
}
Но в тот момент я беру определение структуры вне его работы:
#include <stdio.h>
#include <unistd.h>
#include <strings.h>
#define TRUE 1
struct test_struct
{
char test_name[50];
char summary_desc[200];
char result[50];
};
struct suite_struct
{
char suite_name[50];
struct test_struct test[500];
int test_count;
int passed;
int failed;
int unresolved;
int notrun;
}suite[500];
void main(int argc,char **argv)
{
int a,b;
for (a=0;a<500;a++)
{
strcpy(suite[a].suite_name,"");
for (b=0;b<500;b++)
{
strcpy(suite[a].test[b].test_name,"");
strcpy(suite[a].test[b].summary_desc,"");
strcpy(suite[a].test[b].result,"");
}
suite[a].test_count=0;
suite[a].passed=0;
suite[a].failed=0;
suite[a].unresolved=0;
suite[a].notrun=0;
}
}
Не знаю, почему это происходит. Для этого я использую компилятор Solaris SunStudio.
'void main' ** RAAAAAARRRRRRGGGGGGHHHHH! ** – pmg
Вы действительно должны ** научиться использовать отладчик **. Вы пытались скомпилировать свою программу с включенными предупреждениями и информацией об отладке (с 'gcc', что означает' -Wall -g')? Вы использовали отладчик? Мы могли бы найти вашу ошибку, но вы действительно должны научиться самостоятельно отлаживать .... –
void main является незаконным. Структуры кажутся Ок. Но они довольно большие для автоматического хранения. – wildplasser