Tôi đang gặp sự cố khi tạo cơ sở dữ liệu dựa trên danh sách được liên kết đơn lẻ trong C, không phải vì khái niệm danh sách được liên kết mà là các trường chuỗi trong cấu trúc.Làm cách nào để làm việc với các trường chuỗi trong cấu trúc C?
Đây là bài tập trong C và theo như tôi biết (Tôi là người mới), C không nhận ra 'chuỗi' làm loại dữ liệu.
Đây là những gì đang struct của tôi trông giống như:
typedef struct
{
int number;
string name;
string address;
string birthdate;
char gender;
} patient;
typedef struct llist
{
patient num;
struct llist *next;
} list;
Tôi đã nghĩ đến việc thực hiện một struct cho chuỗi mình để tôi có thể sử dụng chúng trong các cấu trúc, như thế này:
typedef struct string
{
char *text;
} *string;
Sau đó, tôi sẽ malloc()
mỗi một trong số họ khi nó được yêu cầu để làm cho dữ liệu mới của loại chuỗi (mảng char).
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);
}
Ai đó có thể giúp tôi tìm ra điều này không?
Cảm ơn bạn.
Bạn [không được nhập] (http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc/605858#605858) trong khi sử dụng malloc. –
Không. 'Bệnh nhân' không được khai báo trên toàn cầu, đó là typdef. Nhưng ngay cả khi nó là toàn cầu, bạn sẽ không khởi tạo nó như thế này. – kralyk
@kralyk - đúng, tôi tự nhận ra và sửa chữa. – Attila