나는 C에서 단순해야만하는 무언가를 겪고있다. 그러나 어떤 이유 때문에 그것을 작동시키지 못하는 것 같다.미리 구조체의 배열을 다른 구조체에 배치하려면 어떻게해야합니까?
#define MAX_BRANCH 500
#define MAX_BANK_CLIENTS 100000
#define MAX_CLIENTS 10000
typedef struct Client{
char *pName;
char *fName;
int id;
int branch;
int AccountNum;
int credit;
double surplus;
double IOU;
double savings;
}Client;
typedef struct Branch{
int BrnachNum;
char *Name;
int Accounts;
double sumOfAll;
double profit;
int ActiveLoans;
int Opened;
int Closed;
Client ClientList[MAX_CLIENTS];
}Branch;
typedef struct Bank{
char *Name;
int Branches;
int Accounts;
int ActiveLoans;
double sumOfAll;
double Profit;
Branch BranchList[MAX_BRANCH];
}Bank;
int main()
{
Bank Discount;
Discount.BranchList[0].Accounts = 1;
return 0;
}
// -------------------------------- :
다음은 구조체이다 ------------
이 간단한 정수 값을 정수 인수에 배치하면 스택 오버플로 또는 내부 필드 에 대한 다른 액세스가 표시되고 char 포인터는 다음과 같이 할당됩니다. strdup (내가 사용할 수있는 유일한 메모리 할당).
그리고 모든 종류의 메모리 할당을 사용할 수 없다는 사실을 명심하십시오.
둘째, 일부는 구조체의 정적 배열을 설정하라고 지시했습니다. 예 :
static Branch BranchList[500]
그러나 각 가지에 대해 동일한 작업을 수행 할 수 있습니까?
당신은 정말 숙제로이 태그를해야 사용하여 스택 크기를 증가 –
을 시도하십시오 구조체에 몇 가지 포인터가 있고 메모리 할당을 사용할 수 없다고 말하면서 어떻게 설정했는지 궁금합니다. –
아마도 초기화 문제 일뿐입니다. 항상 모든 초기화를 기본값 초기화 자'= {0}'로 초기화하십시오. –