【发布时间】:2011-01-04 21:09:35
【问题描述】:
我环顾四周,但无法找到解决这个问题的方法。 这是我的代码:
#include <stdlib.h>
struct my_struct {
int n;
char s[]
};
int main()
{
struct my_struct ms;
ms.s = malloc(sizeof(char*)*50);
}
这是 gcc 给我的错误: 错误:灵活数组成员的使用无效
如果我在结构中声明 s 的声明为
,我可以编译它char* s
这可能是一个更好的实现(指针算法比数组快,是吗?) 但我认为在 c 中声明了
char s[]
与
相同char* s
【问题讨论】:
-
char s[]与char *s相同,只是在函数的参数列表中。
标签: c pointers arrays struct memory-management