如何结构体里的数组如何动态分配空间的?

wangmeizhike02 2011-10-31 11:27:17
如何结构体里的数组如何动态分配空间的?

比如:
typedef struct {
ElemType *data;
int len;
int MaxSize;
} SET;

中如何为set动态分配存储空间的。

我用了
SET set;
set->data=(ElemType*) malloc(ms * sizeof(ElemType));

上面的写法好像错误,请问如何写的?谢谢!!
...全文
795 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
孤独小剑 2011-11-01
  • 打赏
  • 举报
回复
set->data=(ElemType*) malloc(ms * sizeof(ElemType));
这句改为:
set.data=(ElemType*) malloc(ms * sizeof(ElemType));
如果是set->data就指向了data中所存的地址,而这个地址目前还是野指针。
zhucz333 2011-11-01
  • 打赏
  • 举报
回复
[Quote=引用楼主 wangmeizhike02 的回复:]
如何结构体里的数组如何动态分配空间的?

比如:
typedef struct {
ElemType *data;
int len;
int MaxSize;
} SET;

中如何为set动态分配存储空间的。

我用了
SET set;
set->data=(ElemType*) malloc(ms * sizeof(ElemType));

上面的写法……
[/Quote]

SET set;
set.data=(ElemType*) malloc(ms * sizeof(ElemType));
AnYidan 2011-11-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wangmeizhike02 的回复:]

引用 3 楼 vilnies 的回复:

你这个是为set的data动态分配了,不是为set动态分配。
set->data应该改为set.data或者改前面的
SET* set = (SET*)malloc(sizeof(SET));


如果要后面的程序我用 realloc 加大内存是不是
SET *set = (SET*)realloc (sizeof(SET));//这一步……
[/Quote]

google realloc(), 它有两个参数
wangmeizhike02 2011-10-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 vilnies 的回复:]

你这个是为set的data动态分配了,不是为set动态分配。
set->data应该改为set.data或者改前面的
SET* set = (SET*)malloc(sizeof(SET));
[/Quote]

如果要后面的程序我用 realloc 加大内存是不是
SET *set = (SET*)realloc (sizeof(SET));//这一步应该不用吧
set->data=(ElemType*) realloc (100* sizeof(ElemType));
vilnies 2011-10-31
  • 打赏
  • 举报
回复
你这个是为set的data动态分配了,不是为set动态分配。
set->data应该改为set.data或者改前面的
SET* set = (SET*)malloc(sizeof(SET));
wangmeizhike02 2011-10-31
  • 打赏
  • 举报
回复
还有就是,如果后面的程序我用 realloc 加大内存分配又如何实现?3q
無_1024 2011-10-31
  • 打赏
  • 举报
回复
SET *set = (SET*)malloc(sizeof(SET));
set->data=(ElemType*) malloc(ms * sizeof(ElemType));

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧