linux 结构体指针赋值,菜鸟请教--关于指向结构体指针的赋值

我自定义了一个结构体,比如

typedef nodeType

{

char *rarVal;

nodeType *nextNode;

};

我应该怎么对这个结构体进行初始化和赋值呢?

int main()

{

nodeType *node;

node->rarVal = (char *)malloc(20);

strcpy(node->rarVal, "test");

node->nextNode = NULL;

...

}

上面这个main还属里面的赋值有什么问题,它老是出现段错误,我不是很明白。请高人指教。

|

int main()

{

nodeType *node;

node = (nodeType *)malloc(sizeof(nodeType));

node->rarVal = (char *)malloc(20);

strcpy(node->rarVal, "test");

node->nextNode = NULL;

...

free(node->rarVal);

free(nodeType);

}

|

#include

#include

#include

struct nodeType

{

char *rarVal;

struct nodeType *nextNode;

};

typedef struct nodeType NodeType;

int main()

{

NodeType test,*node;

node=&test;

node->rarVal = (char *)malloc(20);

strcpy(node->rarVal, "test");

node->nextNode = NULL;

printf("%sn",node->rarVal);

}

说明一个指针nodeType *node;然后这样赋值是不行的,node->rarVal = (char *)malloc(20);

因为node这个指针文指向任何有效的区域,所以就无法引用它所指向的结构成员,malloc是正常返回的,但是node->rarVal 的引用是错误的,也根本无法赋值。

|

就是,指针没有初始化,指向一个正确的变量的地址,可以是一个自动变量的地址,也可以是用户

动态分配的一块内存的地址。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值