특정 구조체 형식의 배열을 만들어야하는 프로젝트 작업 중입니다. 구조는 다음과 같다 :구조체의 문자 배열에 문자 배열 할당
typedef struct
{
char array[30];
int num;
}structure
은이 같은 이러한 구조의 배열을 선언 :
structure struct1[5];
I 문자열과 함께 처음 네 요소를 채우는 기능이 구조 배열을 통과 번호. 다섯 번째는 비어 있습니다. 나중에 프로그램에서 배열을 다시 전달하고 구조체의 문자열을 gets()를 사용하여 사용자가 결정한 문자열로 설정하려고합니다. 이 오류가 발생합니다 :
438:19: error: incompatible types when assigning to type 'char[30]' from type 'char *'
자세한 설명이 필요하면 알려주십시오.
감사합니다.
편집 : 당신은 당신이 이렇게 기운이
char a[20];
a = "bla";
같은 일을하고있다
typedef struct
{
char array[30];
int num;
}structure;
void fillStructs(structure[]);
void userEditStructs(structure[]);
main()
{
structure myStructs[5];
fillStructs(myStructs);
userEditStructs(myStructs);
return 0;
}
void fillStructs(structure s[])
{
//code to fill myStructs elements 0-3.
}
void userEditStructs(structure s[])
{
char newArr[30];
int newNum;
printf("Please enter your string:\n\nEntry:\t");
gets(newArr);
printf("Please enter your number:\n\nEntry:\t");
scanf("%i", newNum);
s[5].array = newArr;
s[5].num = newNum;
}
구조체 배열을 전달하는 코드를 함수에 추가하십시오. –
strcpy와 not 연산자를 사용 = –
결코'gets()'를 사용하지 마십시오. 그것은 위험합니다, 그것은 비난입니다, 그것은 C에서 제거 + + C에서 너무 제거해야합니다. –