의 단일 링크 된 목록을 기반으로 데이터베이스를 만드는 데 문제가 있습니다. 링크 된 목록 개념이 아니라 struct 자체의 문자열 필드 때문입니다.C 구조체에서 문자열 필드를 사용하는 방법은 무엇입니까?
이것은 C에서의 할당이며 내가 아는 한 (나는 초보자 다) C는 '문자열'을 데이터 유형으로 인식하지 못합니다. 이런 식으로, 내가 문자열에 대한 구조체를 만드는 생각했다
typedef struct
{
int number;
string name;
string address;
string birthdate;
char gender;
} patient;
typedef struct llist
{
patient num;
struct llist *next;
} list;
자체가 내가 구조체에서 사용할 수 있도록 :
이처럼 내 구조체 코드는 모습입니다
typedef struct string
{
char *text;
} *string;
그러면 문자열 유형 (char의 배열)의 새 데이터를 만들어야 할 때마다 각각 malloc()
이됩니다.
typedef struct string
{
char *text;
} *string;
int main()
{
int length = 50;
string s = (string) malloc(sizeof string);
s->text = (char *) malloc(len * sizeof char);
strcpy(s->text, patient.name->text);
}
다른 사람이 알아낼 수 있습니까?
감사합니다.
malloc을 사용하는 동안 당신은 [형식 변환을해서는 안됩니다.] (http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc/605858#605858). –
아니요. '환자'가 전역 적으로 선언되지 않았습니다. 이는 typdef입니다. 그러나 그것이 글로벌 일지라도, 여러분은 이것을 초기화하지 않을 것입니다. – kralyk
@kralyk - 정확합니다. 직접 깨닫고 수정했습니다. – Attila