返回信息流简化一下我的问题:
struct adj_table
{
....
link* plink;
....
};
main()
{
struct adj_table* adj;
......
adj = adj_new(); //分配了adj所需的内存空间
adj_set(adj);
......
}
void adj_set(struct adj_table* adj)
{
....
adj->pLink = new_pLink(); //分配了pLink的内存空间
....
}
gcc调试的结果是:adj_set函数返回后pLink的空间只留下了头指针,其余的都找不到了……为什么啊
这是一条镜像帖。来源:北邮人论坛 / cpp / #25917同步于 2009/7/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
关于malloc,请教大牛
def
2009/7/6镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
还是把代码贴全的好
【 在 def (def) 的大作中提到: 】
: 简化一下我的问题:
: struct adj_table
: {
: ...................
【 在 def 的大作中提到: 】
: 简化一下我的问题:
: struct adj_table
: {
: ...................
//这句改成
adj_set(&adj);
void adj_set(struct adj_table** adj)
{
....
(*adj)->pLink = new_pLink(); //分配了pLink的内存空间
....
}
如果是对adj指针的内容进行malloc的话需要传指针地址进去,
lz是对指针adj中的成员变量malloc,所以应该可以不用双重指针
【 在 nobody 的大作中提到: 】
: //这句改成
: adj_set(&adj);
:
: ...................
没看到malloc呢
【 在 def 的大作中提到: 】
: 简化一下我的问题:
: struct adj_table
: {
: ...................
恩
【 在 white127 的大作中提到: 】
: 如果是对adj指针的内容进行malloc的话需要传指针地址进去,
: lz是对指针adj中的成员变量malloc,所以应该可以不用双重指针