Tôi đang gặp sự cố khi khởi tạo một mảng cấu trúc. Tôi không chắc chắn nếu tôi làm điều đó đúng bởi vì tôi nhận được "khởi tạo từ loại con trỏ không tương thích" & "gán từ loại con trỏ không tương thích". Tôi thêm vào trong mã nơi tôi nhận được những cảnh báo này, và khi tôi cố gắng để in các dữ liệu từ các struct tôi chỉ nhận rác như @@ ###C - khởi tạo mảng các cấu trúc
typedef struct
{
char* firstName;
char* lastName;
int day;
int month;
int year;
}student;
// khởi tạo mảng
student** students = malloc(sizeof(student));
int x;
for(x = 0; x < numStudents; x++)
{
//here I get: "assignment from incompatible pointer type"
students[x] = (struct student*)malloc(sizeof(student));
}
int arrayIndex = 0;
// thêm struct
//create student struct
//here I get: "initialization from incompatible pointer type"
student* newStudent = {"john", "smith", 1, 12, 1983};
//add it to the array
students[arrayIndex] = newStudent;
arrayIndex++;
Mã của bạn có vẻ là một nửa giữa việc tạo động một mảng các cấu trúc sinh viên và tự động tạo một mảng con trỏ tới cấu trúc sinh viên và sau đó tự động tạo từng cấu trúc sinh viên được trỏ tới. Nó không rõ ràng mà bạn đang cố gắng làm, mà làm cho trả lời này khó khăn. –