内存空间申请问题..

Andrwyw 2010-03-23 08:55:10
一部分代码如下所示:

typedef int Status;

typedef int ElemType;
typedef ElemType * Triplet;




/* 初始化Triplet*/
Status InitTriplet(Triplet T,ElemType v1,ElemType v2,ElemType v3)
{
T=(ElemType *)malloc(3*sizeof(ElemType));

if(!T)
exit(OVERFLOW);
T[0]=v1;
T[1]=v2;
T[2]=v3;
printf("%d ",T[1]);

return OK;
}

int main(void)
{ int Sys,date;
Triplet p=NULL;
Sys=InitTriplet(p,1,2,3);
printf("%d ",p[2]);

system("pause");


}
运行会弹出内存不能读...或者说内存空间不能这样申请..
数据结构书中空间的申请就是放在InitTriplet函数内的..
在main中如何调用呢
...全文
133 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Andrwyw 2010-03-23
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 pony_maggie 的回复:]
LZ要明白一件事情:
T[0]=v1;
T[1]=v2;
T[2]=v3;
printf("%d ",T[1]);
这种写法是不对的, 你得用*T++这样的写法.
[/Quote]
malloc(3*sizeof(ElemType));
即使我这个是3元组也不行么...
lucasma.eth 2010-03-23
  • 打赏
  • 举报
回复
LZ要明白一件事情:
T[0]=v1;
T[1]=v2;
T[2]=v3;
printf("%d ",T[1]);
这种写法是不对的, 你得用*T++这样的写法.
Andrwyw 2010-03-23
  • 打赏
  • 举报
回复
oh..我知道2l什么意思了
指向指针的指针...
白云飘飘飘 2010-03-23
  • 打赏
  • 举报
回复
Status InitTriplet(Triplet T,ElemType v1,ElemType v2,ElemType v3)
把函数的声明改一下:
Status InitTriplet(Triplet &T,ElemType v1,ElemType v2,ElemType v3)
Andrwyw 2010-03-23
  • 打赏
  • 举报
回复
up.......
flyyyri 2010-03-23
  • 打赏
  • 举报
回复
顶了~
Andrwyw 2010-03-23
  • 打赏
  • 举报
回复
oh..我混乱了..
我如何调用InitTriplet
并使得main中的指针指向main中的T=(ElemType *)malloc(3*sizeof(ElemType));
lucasma.eth 2010-03-23
  • 打赏
  • 举报
回复
楼上正解.
Sys=InitTriplet(p,1,2,3);这一句只是给p的临时变量分配了空间,
并没有给p分配空间.所以, "运行会弹出内存不能读...或者说内存空间不能这样申请"
Andrwyw 2010-03-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 thefirstz 的回复:]
C/C++ code
Status InitTriplet(Triplet T,ElemType v1,ElemType v2,ElemType v3)
Sys=InitTriplet(p,1,2,3);

改为:
Status InitTriplet(Triplet *T,ElemType v1,ElemType v2,ElemType v3)
Sys=InitTriplet(&am……
[/Quote]
依旧会弹出0x0000008 内存不能read..
而且typedef ElemType * Triplet;
昵称很不好取 2010-03-23
  • 打赏
  • 举报
回复
Status InitTriplet(Triplet T,ElemType v1,ElemType v2,ElemType v3)
Sys=InitTriplet(p,1,2,3);

改为:
Status InitTriplet(Triplet *T,ElemType v1,ElemType v2,ElemType v3)
Sys=InitTriplet(&p,1,2,3);

69,382

社区成员

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

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