q = (LinkList)malloc(sizeof(Node));
q = (LinkList *)malloc(sizeof(Node));
在定义一个链表结构体后
分配动态内存,这两个有什么区别吗
求各位大神解释谢谢
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

已结题
关于malloc分配问题
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除
- 收藏 举报
1条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
我素wfz 2021-08-16 10:10关注有区别。
因为你想要的是一个指向堆,这就是刚刚分配的内存空间的指针,而malloc的返回值类型是void *,所以要将他强制转换成指针类型LinkList *。
如果q仅仅只是一个数值,那么就用第一种,不过这种不常见,也不推荐,因为堆上的数据用完后需要free释放掉,所以这种方法不好。
一般情况下用的都是指针,这样就可以分配数组,释放内存了。本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览

轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2022-11-02 11:06回答 1 已采纳 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7732795你也可以参考下这篇文章:malloc动态分配内存越界问题你还可以看下数据结构参考手册中的 分配
- 2022-04-10 11:38回答 1 已采纳 malloc(len)申请的是内存地址,通俗地说,就是指针的模板,然后(char*)malloc(len)则是把这个模板转换成char*类型指针char的话,不是地址不能这样子转换如果对你有帮助,望采
- 2017-02-14 23:09回答 3 已采纳 首先我觉得你的返回值和函数锁定的返回值类型就不一致,定义的是返回结构体,实际上返回的是结构体指针;其次对于你的问题,malloc锁所申请的内存空间是堆空间,这部分的内存是需要程序员手动申请并且手动释放
- 2024-11-24 22:57dvlinker的博客 本文在多年项目实践的基础上,详细总结一下内存不足的相关问题场景以及内存不足引发程序异常的具体原因,供大家借鉴或参考。
- 2022-11-21 16:35回答 2 已采纳 其实malloc函数不用加类型转换它也会默认隐式转换的,就相当于 int a=3.4一样道理,不用加强制转换,它也会转换成整数3。不用太纠结,编译本身问题吧,为了通用一些那就加上强制类型转。
- 2021-10-07 01:27回答 1 已采纳 每个elemtype的变量占用的内存大小为sizeof(elemtype),你如果要开辟STACK_INIT_SIZE个元素,就需要申请这么元素个数*元素大小这么大的空间,然后将返回的指针转化为ele
- 2021-08-16 02:33回答 4 已采纳 应该不是那句代码得问题。是你分配的内存不足,下面引用越界了。你申请了100个整形空间,下面赋值下标可超过100了。你检查看看看吧
- 2019-09-22 13:49长安1001的博客 (1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位 (2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行 (3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统...
- 2022-04-26 09:33回答 1 已采纳 两个问题 判断相等写成了单个=初始化方式错了 这里判断相等写错了main函数中初始化方式错了对应的访问方式也需要更改,->用于结构体指针,.用于结构体变量所有函数里面的Q都需要改成&Q修改完毕后
- 2021-11-25 03:40回答 2 已采纳 你分配出来的空间是用来保存字符串吗?如果保存字符串的话, C语言的字符串中,最后会保留一个截止符号('\0')的。你申请字符串的内存空间时,要字符串的长度加1 ,那个1就是为了保存'\0'的。保存了截
- 2021-11-08 04:36回答 2 已采纳 每行的p的地址都是首地址,每次malloc后,由系统重新分配内存,所以p也会随着改变,直到没有内存可以分配(程序会崩溃)。没有free的空间还保留在程序中,但是因为已经让p指向了新申请的内存,所以先申
- 2024-04-22 06:56dvlinker的博客 基于开源CrashRpt与微软开源Detours技术深度改造的异常捕获库分享。
- 2018-11-08 06:59又见藤蔓的博客 1,用malloc类的函数分配内存; 2,用这些内存支持应用程序 3,用free函数释放内存 二、动态内存分配函数 malloc :从堆上分配内存 realloc : 在之前分配的内存块的基础上,将内存重新分配为更大或者更小的部分 ...
- 2023-09-18 01:05微软技术分享的博客 CRC校验技术是用于检测数据传输或存储过程中是否出现了错误的一种方法,校验算法可以通过计算应用与数据的循环冗余校验(CRC)检验值来检测任何数据损坏。通过运用本校验技术我们可以实现对特定内存区域以及磁盘文件...
- 2013-09-03 10:14《微软C编程精粹》是一本专注于C语言编程实践的权威指南,专为那些希望深入理解和掌握微软平台上的C编程技术的开发者而设计。这本书详细介绍了C语言的基础知识,同时也涵盖了在微软环境下进行高效编程的各种高级技巧...
- 没有解决我的问题, 去提问
问题事件
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司