구조체배열 초기화 질문 좀 드릴게요
움찬
스타크래프크 유닛 정보를 저장하는 간단한 구조체배열입니다.
질문 내용 :
#includestdio.h
typedef struct unit
{
char name[20];
int health;
int attack;
int defence;
int creat;
}unit;
void unitinfo(unit* arr);
int main()
{
unit arr[100];
unitinfo(arr);
return 0;
}
void unitinfo(unit* arr)
{
arr[0].name=저글링; //쭉쭉~
}
일단 초석으로 스타크래프트 유닛 정보를 구조체배열에 다 저장을 해놓으려고 했는데요..
초기화에서 문제가 발생해버리네요..ㅠ
main에서 구조체배열을 넉넉하게 선언하고 그걸 함수로 보내서 그 함수 내에서 이 배열에 값을 차례차례 넣으려고 했는데...
arr[0]={저글링,1,2,3,4}; 이런식의 구문은 역시 안되더라구요... 선언과 동시에 초기화하는게 아니라서 그런가..
결국 그래서 일일이 .name ~ .creat 까지 일일이 붙여서 하나하나 넣는 노가다를 해보려 합니다... =ㅅ=;
그런데 문자열 저장이 제대로 되지가 않네요. 어떻게 해야하나요?
또 조금 더 간단한 초기화 방법이 있을까요? 20개는 넘는 녀석들을 일일이 arr[0].name ... arr[20].creat 까지 해가면서 넣자니 한번에 {} 중괄호를 이용하여 한 인덱스씩 한번에 정보를 넣고 싶은 마음도 있는데..
아니면 지금 있는 문제만 확인해주셔도 감사하겠습니다!
-
Sonya 2024-01-26
초기화 함수를 따로 만드시는 방법도 괜찮을 것 같습니다.
-
설화 2024-01-26
문자열은 strcpy함수를 사용하셔서 입력 하셔야 합니다. 아니면 포인터 변수로 선언하시고 쓰시던데로 쓰셔도 되구요 초기화 방법은 선언과 동시에 초기화를 전부 해주시거나... 아니면 반복문으로 초기화 해주셔야겠네요