c语言的乘号与星号,编程达人 新手对C中的结构体以及malloc、星号(英文乘号)的使用的疑惑...

后知后觉

等级 N0

+ 关注

已关注

修改

2017-11-06 17:41

新手对C中的结构体以及malloc、星号(英文乘号)的使用的疑惑

感谢及追问:

多谢二楼三楼四楼几位朋友的帮助,经过对代码中被二楼指出部分的更改,程序已经可以正常运行(正常运行代码我会在之后附上),这里还有几个小问题想请教一下:第一个是,在函数声明以及最下面写函数体的时候“void InitTriplet(struct Triplet **T,int v1,int v2,int v3)”这句用了两个星号在T前面,请问这个是什么意思?第二个是在这句中“printf("%d,%d,%d",T1->first,T1->second,T1->third);”我用了“T1->first”而不是“&T1->first”请问为什么可以不用取地址符? 再次感谢三位的解答,多谢了!

完整可运行代码如下(ubuntu 16.04, gcc):

#include

#include

#include

#include

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

#define INFEASIBLE -1

#define OVERFLOW -2

typedef int Status;

struct Triplet

{

int first;

int second;

int third;

};

void InitTriplet(struct Triplet **T,int v1,int v2,int v3);

int main( )

{

struct Triplet *T1;

InitTriplet(&T1,1,2,3);

printf("%d,%d,%d",T1->first,T1->second,T1->third);

free(T1);

T1 = NULL;

return 0;

}

void InitTriplet(struct Triplet **T,int v1,int v2,int v3){

*T=(struct Triplet *)malloc(sizeof(struct Triplet));

(*T)->first=v1;

(*T)->second=v2;

(*T)->third=v3;

}

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

原问题如下:

最近正在使用清华大学的数据结构教材学习数据结构,试着动手实现一个三元组数据结构(代码我会在后边附上),编译通过后运行(编译、运行均在ubuntu虚拟机16.04上进行),然后提示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值