问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

初始化顺序栈时 (SeqStack *)malloc(sizeof(SeqStack))中的 (SeqStack *)为什么要再定义一遍类型?

发布网友 发布时间:2022-05-08 01:11

我来回答

4个回答

热心网友 时间:2023-11-23 01:36

在 init_stack(SeqStack *&s)内只是为你传入的结构体指针分配内存空间,并非是定义;
可以在main函数里直接分配内存空间,但别人这样写,思路和代码结构层次分明,便于理解;
指针需要这么大空间是因为结构体里有一个整形 数组成员;

并非是指针里有个top变量,是指针指向的结构体内定义了一个top成员;

热心网友 时间:2023-11-23 01:36

参数类型:SeqStack *, 是SeqStack结构的指针。
参数:&s, 是对外部指针的引用。
调用返回:为指针s分配了 MAX_SIZE + size(int)的空间,同时指向该空间。空间包含的top初始化为0xffffffff(假设int长度4字节)。

热心网友 时间:2023-11-23 01:36

malloc用于在堆上申请所需的内存,其返回类型是一个指向所需内存的void指针。我们需要把这个无意义的void类型转换成实际在用的类型。在本例中,我们申请的内存实际上就是一个SeqStack结构,所以void指针就当转成指向的SeqStack的指针。
你混淆了“指针”和“指针指向的对象”这两个概念,建议把指针的知识再看一看,这也说明你很少写代码,其实上机所能悟到的远比看十遍书来得深刻

热心网友 时间:2023-11-23 01:37

第二个不是定义,理解为转换,将分配的地址转换为SeqStack

热心网友 时间:2023-11-23 01:36

在 init_stack(SeqStack *&s)内只是为你传入的结构体指针分配内存空间,并非是定义;
可以在main函数里直接分配内存空间,但别人这样写,思路和代码结构层次分明,便于理解;
指针需要这么大空间是因为结构体里有一个整形 数组成员;

并非是指针里有个top变量,是指针指向的结构体内定义了一个top成员;

热心网友 时间:2023-11-23 01:36

参数类型:SeqStack *, 是SeqStack结构的指针。
参数:&s, 是对外部指针的引用。
调用返回:为指针s分配了 MAX_SIZE + size(int)的空间,同时指向该空间。空间包含的top初始化为0xffffffff(假设int长度4字节)。

热心网友 时间:2023-11-23 01:37

malloc用于在堆上申请所需的内存,其返回类型是一个指向所需内存的void指针。我们需要把这个无意义的void类型转换成实际在用的类型。在本例中,我们申请的内存实际上就是一个SeqStack结构,所以void指针就当转成指向的SeqStack的指针。
你混淆了“指针”和“指针指向的对象”这两个概念,建议把指针的知识再看一看,这也说明你很少写代码,其实上机所能悟到的远比看十遍书来得深刻

热心网友 时间:2023-11-23 01:37

第二个不是定义,理解为转换,将分配的地址转换为SeqStack

热心网友 时间:2023-11-23 01:36

在 init_stack(SeqStack *&s)内只是为你传入的结构体指针分配内存空间,并非是定义;
可以在main函数里直接分配内存空间,但别人这样写,思路和代码结构层次分明,便于理解;
指针需要这么大空间是因为结构体里有一个整形 数组成员;

并非是指针里有个top变量,是指针指向的结构体内定义了一个top成员;

热心网友 时间:2023-11-23 01:36

参数类型:SeqStack *, 是SeqStack结构的指针。
参数:&s, 是对外部指针的引用。
调用返回:为指针s分配了 MAX_SIZE + size(int)的空间,同时指向该空间。空间包含的top初始化为0xffffffff(假设int长度4字节)。

热心网友 时间:2023-11-23 01:37

malloc用于在堆上申请所需的内存,其返回类型是一个指向所需内存的void指针。我们需要把这个无意义的void类型转换成实际在用的类型。在本例中,我们申请的内存实际上就是一个SeqStack结构,所以void指针就当转成指向的SeqStack的指针。
你混淆了“指针”和“指针指向的对象”这两个概念,建议把指针的知识再看一看,这也说明你很少写代码,其实上机所能悟到的远比看十遍书来得深刻

热心网友 时间:2023-11-23 01:37

第二个不是定义,理解为转换,将分配的地址转换为SeqStack
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我想问扣扣邮箱在哪里 求几道奥数题的答案(算数的)要简便得算哈 能不能给我六十道五年级奥数题.要答案 六十道五年级奥数题? 比亚迪和哪国合资的车 入党政审有什么步骤? 请问邮箱在哪里我怎么找不到 夫妻相克表太准了 夫妻相克会离婚吗? 夫妻相克表太准了夫妻五行相克化解方法 无法登录学信网怎么办? 用顺序表实现栈的初始化,入栈及出栈操作,有很多错误,能帮忙么?谢谢 想自己开发一个微信商城,需要懂哪些技术? 生菜坐月子可以吃吗,生菜坐月子能吃吗 生菜为什么不能煮熟吃呢?有什么反应吗? 有斑点的生菜可以吃吗? 生菜不能吃吗? iqoou3x怎么关闭5g iqoo u3x支持4g卡吗 ⅴⅰvoU3X能用5G网吗? iqoou3x标准版是5g手机吗 荣耀30s与IQQO U3X(5G款。)哪个比较好 oppou3x是不是5g手机 怎么重启airpods 为什么硬币一元1999有两种,一个菊花,一个牡丹花 一元钱的硬币从那年发行的! 朵唯手机怎样强制格式化? 朵唯s1怎么把应用搬到SD卡上 朵唯手机小卡怎么插 朵唯女性手机插卡处怎么开? 朵唯手机l5m怎么装卡 建立顺序栈,并实现顺序栈的进栈和出栈 关于数据结构栈的初始化问题 编写函数实现的顺序栈的初始化、入栈、出栈、判断栈是否为空的算法,并应用与表达式的括号匹配检测 3、顺序栈的定义如下所示,初始化时,栈顶指针top= -1。 完成元素出栈操作。 #d 采用顺序存储实现栈的初始化、入栈、出栈操作。完整的程序,麻烦您了 c语言数据结构高手请进,关于顺序栈的基本操作问题。 用C写出顺序栈和链式栈的各种操作,主函数也写出来 老公天天玩手机,上厕所也玩手机,还出去麻将,也不主动和说话,也不陪我,他是不是不在意我? 老公总是玩手机不理人 老公天天玩游戏,不和我交流,也不关心我,怎么办? 老公一回家就玩手机看小说对我基本不理,也很少跟我说话,我老是跟他说话他好我好烦,在外面工作上遇到一 我的命令提示行不支持中文输入,求解,mysql的DOC也不支持,谢谢啦!! 豆腐脑凉了可以热吗? 豆腐脑的做法和配方 做豆腐脑小贴士 豆腐脑该怎么做 电脑黑屏后屏幕一直闪是怎么回事 电脑就突然黑屏了、还一直闪、怎么办呢 电脑屏幕一下闪黑屏一下又闪好然后一直这样闪是什么原因 电脑开机显示屏亮一小会马上黑屏然后指示灯一直闪是什么原因 有一首歌是这样的为了为你我变成爱情赌徒这是啥歌啊 求一首歌名!急!!!