Tôi có struct sau:malloc một mảng của con trỏ struct
typedef struct _chess {
int **array;
int size;
struct _chess *parent;
} chess;
và tôi có:
typedef struct _chess *Chess;
Bây giờ, tôi muốn tạo một mảng có độ dài năng động để lưu trữ con trỏ đến cờ vua struct vì vậy tôi làm như sau:
Chess array [] = malloc(size * sizeof(Chess));
Điều này mang lại cho tôi một lỗi: trình khởi tạo không hợp lệ.
Và nếu tôi thả [] và thực hiện điều này:
Chess array = malloc(size * sizeof(Chess));
nó biên dịch mà không có lỗi nhưng khi tôi cố gắng thiết lập một phần tử của mảng này để NULL bằng cách thực hiện:
array[i]=NULL;
tôi gặp lỗi: các loại không tương thích khi gán cho loại 'struct _chess' từ loại 'void *'
Bất kỳ ý tưởng nào tôi đang làm sai? Cảm ơn.
WHY typedef the struct? nó có một kiểu duy nhất rồi. –
@ user82238 Vì vậy, bạn không phải gõ 'struct' khi sử dụng loại. – Tyilo
Ngừng sử dụng con trỏ typedefs, bạn chỉ là khó hiểu chính mình. 'chess * array = malloc (kích thước * sizeof * mảng);'. –