#include <stdio.h>
struct line {
int length;
char contents[0];
};
struct line* get_struct_line(struct line *thisline)
{
thisline = (struct line *)malloc(sizeof(struct line) + 10);
thisline->length = 10;
return thisline;
}
int main()
{
struct line * main_line = NULL;
//get_struct_line(main_line);
printf("length = %d/n",get_struct_line(main_line)->length); /* 非左值數組可以具有下標,一個函數的傳回值是一個結構體或是結構體指標的話,則可以直接使用"."或是"->",得到結構體的子項目。 */
}
--------------------------------------------------------------------------------------------------------------------------------
liudan@liudan-desktop:/media/LIUDAN/aa/leftvalue_bracket$ gcc -o lvb generalized_lvalue.c
generalized_lvalue.c: In function ‘get_struct_line’:
generalized_lvalue.c:10: warning: incompatible implicit declaration of built-in function ‘malloc’
liudan@liudan-desktop:/media/LIUDAN/aa/leftvalue_bracket$ ./lvb
length = 10
liudan@liudan-desktop:/media/LIUDAN/aa/leftvalue_bracket$