#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NEN 4
#define LEN 12
//Data Type
//枚举,座位是空的还是满的
enum state_ {empty,full};
//姓名结构体
typedef struct name_
{
char first[20];
char last[20];
} NAME;
//航班数据结构体
typedef struct flight_
{
int seat_number;
enum state_ state;
NAME name;
}FLIGHT;
//初始化函数原型+声明,参数是航班结构体类型的二维数组及其大小
void initiallize_empty(FLIGHT *fi[LEN],int n,int m)
{
for(int i = 0;i<m;i++)
{
for(int j = 0;j<n;j++)
{
fi[i][j].state = empty;//座位状态设置为空
fi[i][j].seat_number = j+1;//座位序号设置为j+1
strcpy(fi[i][j].name.first,"No");//姓名设置为No Name
strcpy(fi[i][j].name.last,"Name");
}
}
}
int main(void)
{
FLIGHT plane[NEN][LEN];
initiallize_empty(plane,LEN,NEN);
return 0;
}
求找错误 编译通过 运行时候只能做第一轮初始化 第二轮就内存错误
求解
#include <stdlib.h>
#include <string.h>
#define NEN 4
#define LEN 12
//Data Type
//枚举,座位是空的还是满的
enum state_ {empty,full};
//姓名结构体
typedef struct name_
{
char first[20];
char last[20];
} NAME;
//航班数据结构体
typedef struct flight_
{
int seat_number;
enum state_ state;
NAME name;
}FLIGHT;
//初始化函数原型+声明,参数是航班结构体类型的二维数组及其大小
void initiallize_empty(FLIGHT *fi[LEN],int n,int m)
{
for(int i = 0;i<m;i++)
{
for(int j = 0;j<n;j++)
{
fi[i][j].state = empty;//座位状态设置为空
fi[i][j].seat_number = j+1;//座位序号设置为j+1
strcpy(fi[i][j].name.first,"No");//姓名设置为No Name
strcpy(fi[i][j].name.last,"Name");
}
}
}
int main(void)
{
FLIGHT plane[NEN][LEN];
initiallize_empty(plane,LEN,NEN);
return 0;
}
求找错误 编译通过 运行时候只能做第一轮初始化 第二轮就内存错误
求解


