首页文章正文

malloc(0),常指针和指向常量的指针的区别

链表具有的特点 2023-11-04 13:55 580 墨鱼
链表具有的特点

malloc(0),常指针和指向常量的指针的区别

malloc(0),常指针和指向常量的指针的区别

(#`′)凸 因为malloc(0)中存在bug,所以有必要记录一下。 让我从结论开始:*malloc(0)是允许的并返回非NULL指针,至少在我工作的Linux系统上是这样。 在mandocument中初始化。如果size为0,则malloc()返回NULL,或者唯一的指针值,稍后可以成功传递给free()。这句话是翻译过来的

因为标准中提到,对于故意造成问题的小oc(0)代码,可以在实现过程中返回空指针作为回礼。 1)malloc(0)的行为是C语言标准所允许的。 2)malloc(0)不一定返回空指针,不同的环境产生不同的结果。 3)malloc(0)返回的指针指向的空间可能不可访问。

事实上,对于FreeRTOS的微控制器来说,在申请内存时,实际上是有一个最小单位的,这个单位就是内存管理结构的大小,这意味着一般malloc(0)和malloc(1)申请的大小是相同的(如果malloc(0)允许的话)。 但是#include#includeintmain(){char*ptr;if((ptr=(char*)malloc(0))==NULL)puts("gotanullpointer\n"); elseputs("必须

例如:intpp=(strlen(ptr=(char*)malloc(0))),intpp=(sizeof(ptr=(char*)malloc(0)))将会输出空指针。 注意:(1)NULL一般预定义为(void*)0,这意味着malloc(0)的语法实际上是正确的,确实分配了内存,但内存空间为0,这意味着不能使用返回指针。 malloc(0)的返回值可能为NULL,也可能不为NULL,实际参数为正整数。

˙△˙ 就像我在文章http://cnblogs/wuyuegb2312/p/3219659.html中评论的那样,我也遇到了所问的malloc(0)的返回值问题,尽管我觉得这样做在实践中没有任何意义。 malloc分配内存时,除了分配我们指定的SIZE内存块外,还会分配额外的内存来存储我们的内存块信息,以维护内存。片。 因此,malloc(0)返回指向内存的合法指针

后台-插件-广告管理-内容页尾部广告(手机)

标签: 常指针和指向常量的指针的区别

发表评论

评论列表

黑豹加速器 Copyright @ 2011-2022 All Rights Reserved. 版权所有 备案号:京ICP1234567-2号