2016-11-29 2 views
-1

몇 가지 기본 정보가 포함 된 구조체 배열을 만들려고합니다.구조체 배열 만들기

typedef struct { 
    char firstName[30]; 
    char lastName[30]; 
    char street[35]; 
    char city[20]; 
    char state[3]; 
    int zip; 
    char phone[15]; 
    int accountId; 
} Customer; 

int main(void) { 

int i, customer_number, _zip, _accountId; 
struct Customer customer_list[9]; 
char _firstName[30], _lastName[30], _street[35], _city[20], _state[3], _phone[15]; 


    for (i = 0; i < 10; i++) { 
     customer_number = 0; 
     printf("Enter data for customer %d: \n", customer_number); 
     printf("Enter First Last Phone: "); 
     scanf("%s%s%s", &_firstName, &_lastName, &_phone); 

     printf("\nEnter Address (Street City State ZIP): "); 
     scanf("%s%s%s%d", &_street, &_city, &_state, &_zip); 

     Customer customer_list[i] = {[i].firstName = _firstName} 

    } 

    return 0; 
} 

그러나 나는 "내가 상수 값이 있어야합니다"사람이 올바른 방향으로 날 밀어 수 없다는 오류를 얻고, 작동합니다 같이 보인다 다음과 같이 내 코드는? 고맙습니다!

+1

시도가'구조체 고객 customer_list' 단지'고객 customer_list'을 변경하여 수행해야합니다. –

+0

주요 문제를 해결하지 못했지만 좋은 지적입니다. 이미 구조를 더 일찍 정의 했으므로 주요 함수 안에서 다시 할 필요가 없습니다. 맞습니까? – Froobyflake

+0

예, main에있는 for 루프의 마지막 줄에'struct Customer'가 필요 없습니다. –

답변

1
Customer customer_list[i] = {[i].firstName = _firstName} 

이 줄은

strcpy(customer_list[i].firstName, _firstName); 

편집 할 필요가 : 할당이 strcpy()

+1

그것은'strcpy()'일 필요가 있습니다. 배열을 할당 할 수는 없습니다. –

+0

아, 문자 배열 때문입니다. – Froobyflake

+0

'오류 : 배열 타입을 가진 표현식에 할당 ' – 4386427