typedef struct {
char name[10];
} A;
A * inst = get_instance_of_A();
char *str = g_strdup (inst->name);
마지막 줄이 컴파일되지 않습니다. 나도 운이없는 & (inst-> name)을 시험해 보았다. 오류는 다음과 같습니다.g_strduping 문자 배열 멤버 요소
오류 : char은 구조체 유형이 아닙니다.
나는 char []와 char *가 서로 다른 유형이라는 것을 알고 있습니다. 하지만 g_strdup가 C 문자열의 시작 위치를 가져 와서 속여서는 안됩니까? 다음과 같이하면 작동합니다.
char temp[10];
strncpy(temp,inst->name,9);
char *str = g_strdup (temp);
로컬 char 배열 복사본을 만들지 않고 어떻게 할 수 있습니까? 두 경우 g_strdup char 배열을 전달하는 것처럼 주먹 시나리오에서 인수를 올바르게 전달하지 않을 것 같아요.
'g_strdup'의 프로토 타입을 제공하면 도움이 될 것입니다. –
@Pascal : gchar * g_strdup (const gchar * str); – tur1ng
프로토 타입 :'gchar * g_strdup (const gchar *);' –