77问答网
所有问题
这个c语言结构体链表为什么已经定义了结构体类型的指针,还要再malloc呢?
如题所述
举报该问题
推荐答案 2018-02-07
指针必须初始化指向一个内存地址。或者=NULL,否则就是野指针!
SLIST是一个结构类型,定义该类型变量当然要初始化了。
malloc就是给这个指针申请了一个结构大小的内存空间让它指向。
否则你引用不了指针指向的地址。
注意malloc申请的内存,不会自动释放,不用的化需要用free释放掉。
追问
请问如果初始化了是否就不需要malloc了呢?
追答
对啊,你也可以先定义一个结构类型的变量,再用指针指向这个变量啊
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://77.wendadaohang.com/zd/YGWWGIpIY38GING3pYp.html
相似回答
指针什么
时候用
malloc,什么
时候不用,请大神详解,谢谢!
答:
链表,只有新增一个节点的时候,才需要malloc,分配实际的空间
。逆序的过程,不需要分配空间,只是把这些节点的连接顺序改变了。一个节点,可以有多个指针指向它。其他指针不需要malloc。
...
结构体指针
变量跟
定义
该指针变量之后再调用
malloc
为其分配内存之后有...
答:
你的“分配内存”的概念有点问题——不是用
malloc
为某个指针分配了内存,而是先用malloc分配了内存,再将这个块内存的首地址赋给一个类型匹配
的指针,
把首地址赋给一个指针的目的是为了操作这一块内存,否则分配在什么地方你就不知道了,就无法操作和释放这一块内存了。根据上述解释,那么再声明另一个...
c语言
malloc函数
在
链表
中的用处
答:
一般来说,就类似于 char p;在栈上分配空间;(但是
结构体
内部的东西另说);A *a ;// 这个时候,就类似于 char *p;//有可能你需要手动在堆上分配空间。简单来说,如果是
指针,
可能会涉及到
malloc
分配,非指针的话,就没有malloc一说。你看你的结构体
定义的
变量是不是一个指针型的 ...
C语言定义结构体
变量时用
结构指针
和普通变量的区别是
什么
答:
定义结构体变量,系统会为这个变量分配实际的内存空间。定义一个
结构体指针,
那它就只是个指针,大小也就是系统的地址长度,它里面的值应该指向一个具体的结构体内存空间,才算正常操作。
定义了
指针以后,要么就用
malloc
分配空间,要么指向一个已经存在的变量的地址,才能做实际操作,否则只是给系统添乱的。
C语言
里
结构体的
问题。
结构体定义指针类型
是怎么回事?
答:
这个是malloc的语法,该语句的含义是分配m+1个HTNode
结构体
占用的内存,将分配的内存地址赋给HT。sizeof作用是判断某个类型所占用的内存空间,此处是计算HTNode占用的空间大小,然后(m+1)*sizeof(HTNode)表示m+1个HTNode
,malloc
是请求分配内存,(HuffmanTree)是强制类型转化,将得到的内存地址强制转化为...
单
链表
中
为什么
要
定义
一个
结构体类型的指针?
答:
链表定义
的
结构体,
就是描述
链表结构
中节点的组成。
定义的指针呢,
是种嵌套,指向结构体本身。而结构体是一种数据
类型,
而不是具体的一个变量。所以这里可以理解为定义的指针指向的是,该链表的某个节点 希望能为你解答疑惑!另外推荐系统学习数据
结构,
并且用语言实现一下。对于语言理解也有所好处 ...
关于
C语言结构体指针
的一个疑问?
答:
出现此问题的原因在于链表创建create函数有问题,问题定位在图中红色框内。此处每个节点使用的是局部变量,函数结束后,局部堆栈虽然内容不会清除,但内存会被回收,如果其它地方也使用堆栈可能会分给它用,内存内容就会改变。正确的方式是申请堆内存。使用
malloc函数,
同时包含头文件#include<stdlib.h>。框内...
大家正在搜
c语言链表指向下一个结构体指针
c语言链表定义后面是什么
链表结构体定义的意思
c语言链表和结构体数组
c语言结构体链表初始化
c语言结构体链表读取文件
怎么把结构体和链表结合
结构体链表指针
c语言指针和链表
相关问题
c语言问题,为什么链表操作过程中对于结构体指针,都要用mal...
C语言中链表中的结构体指针变量问题。。。求教
c语言 malloc函数在链表中的用处
C语言里结构体的问题。结构体定义指针类型是怎么回事?
C语言怎么理解链表 p=(struct stu *)mall...
c语言创建单链表的时候对于结构体变量要用malloc函数,和...
C语言里用malloc开辟动态链表,为什么两个结点之间的地址...
如何用链表实现malloc函数功能,用c语言?