내 상황의 요지는 내가 구조체를 초기화하려고 할 때 양립 할 수없는 유형의 할당을 받았다는 것입니다. 나는 C에 상당히 익숙하며 이해하는 포인터는 나를 위해 상당한 도전이된다는 것을 증명한다. 그러나 나는이 오류와 비슷한 질문을하고 다른 수정을 시도했으며 지금까지 행운이 없었다. 누군가가 나를 위해 이것을 고칠 수 있다면, 당신은 내 영웅이 될 것입니다.C - 호환되지 않는 유형의 대입 - 구조체 및 문자 배열
struct Employee {
char* name[100];
int birth_year;
int starting_year;
};
struct Employee* make_employee(char* name, int birth_year, int starting_year);
int main(){
//some main stuff code
}
struct Employee* make_employee(char* name, int birth_year, int starting_year){
struct Employee* newEmpl = (struct Employee*)malloc(sizeof(struct Employee));
newEmpl->name = name;
newEmpl->birth_year = birth_year;
newEmpl->starting_year = starting_year;
return newEmpl;
}
할당 오류는 name = name 행에 발생합니다. 나는 이유를 모른다. 내가
strcpy(&(newEmpl->name), name);
으로 그 라인을 전환하는 경우 또한 내가 얻을 :
경고 : 나는 2 시간 동안 문제를 찾기 위해 노력했습니다
호환되지 않는 포인터 유형에서 'strcpy를'의 인수 하나를 전달 , 그리고 행운은, 내가 여기의 발사를 줄 것이라고 생각했다.
당신의 구조에서
코드에서'name'은 포인터 배열입니다. 아마 당신은'char name [100]'을 원했을 것입니다. – tsnorri