Не уверен, что если это так, но:
Когда структура должна содержать C строку переменной длины (которая не будет меняться после инициализации), то вместо того чтобы писать:
struct x {
int key;
const char* s;
};
когда мы будем нуждаться в двух malloc
«с (один для структуры, и один для строки), мы можем написать
struct X2 {
int key;
char s[1];
}x2;
// and use it like
x2* tmp = (x2*)malloc(sizeof(x2) + strlen(str));
Здесь мы имеем только один malloc
для обеих сторон, структурировать d строка.
Когда последний атрибут структуры является массивом, то, выделяя пространство переменных для структуры, мы можем выделить его с переменным числом таких членов. Я думаю, это происходит в вашем случае.
Это последняя вещь в определении класса? – ruslik
@ruslik: Нет. Он находится в приватном разделе перед некоторыми другими встроенными функциями. – Rohit
Есть ли 'typedef' для' T'? Является ли поле «следующий» поле действительным без одного? – thkala