Tôi tự hỏi tại sao tôi tiếp tục gặp lỗi error: flexible array member not at end of struct
khi tôi gọi malloc. Tôi có một cấu trúc với một mảng chiều dài biến, và tôi tiếp tục nhận được lỗi này.Nguyên nhân của thành viên mảng linh hoạt không phải ở cuối lỗi cấu trúc là gì?
Các struct là,
typedef struct {
size_t N;
double data[];
int label[];
} s_col;
và cuộc gọi đến malloc là,
col = malloc(sizeof(s_col) + lc * (sizeof(double) + sizeof(int)));
Đây có phải là cuộc gọi đúng để malloc?
Tôi không hiểu, tôi được dạy rằng "T * var" giống với "T var []" – spectre
@ lukasz1985: Điều bạn nói là đúng trong bối cảnh đối số hàm, nơi bạn có thể chỉ định " một đối số thao tác mảng "được thực hiện bằng kỹ thuật bằng con trỏ. Thông thường (tức là ở đây) mảng là một mảng, và con trỏ là một con trỏ. – stan423321