ptr = (char *)malloc(0)
char *ptr;
if ((ptr = (char *)malloc(0)) == NULL) puts( "Got a null pointer ");
else puts( "Got a valid pointer ");
上面程序在VC6.0下输出结果是:Got a valid pointer
请问指针为NULL时指向哪里,分配的空间为0时又指向哪里?
当使用malloc后,只有在没有足够内存的情况下会返回NULL,或是出现异常报告。
malloc(0),系统就已经帮你准备好了堆中的使用起始地址(不会为NULL)。但是你不能对该地址进行写操作(不是不允许),如果写了话,当调用free(ptr)就会产生异常报告(地址受损)。
例如:int pp=(strlen(ptr=(char*)malloc(0))) ,int pp=(sizeof(ptr=(char*)malloc(0)))都会输出Got a null pointer。
注意:
(1)NULL一般预定义为(void *)0,指向0地址。
(2)malloc是在程序堆栈上分配空间,不会是0地址 。
(3)malloc(0)是指分配内存大小为零 ,NULL是不指向任何实体,malloc(0)也是一种存在不是NULL。
ptr = (char *)malloc(0)相关推荐
- 【C】malloc(0)问题
实际上malloc(0)这个语法是对的,也确实分配了内存,但内存空间是0,就是说返回指针是不能用的.malloc(0)的返回值可能是NULL也可能不是NULL,和实参为一个正整数时没什么区别.如果返回 ...
- malloc的内存分配之 malloc(0)的内存分配情况
#include<iostream> using namespace std; int main() {char *p;if((p=(char *)malloc(0))==NULL)put ...
- c语言malloc返回值,malloc(0)的返回值
很多嵌入式c面试,会问到这个问题,我也就百度了下,集合几位网友的分析,记录下来,便于我自己随时查看 当malloc分配内存时它除了分配我们指定SIZE的内存块,还会分配额外的内存来存储我们的内存块信息 ...
- char s[0] do{}while(0)
为什么80%的码农都做不了架构师?>>> http://www.newsmth.net mark: struct line { int len; char s[0]; }; s ...
- (char*)malloc(sizeof(char))有什么用,为什么要这么写——简单介绍指针
计算最长字符串长度 输入n (n<10)个字符串,输出其中最长字符串的有效长度.要求自定义函数 Int max_len ( char *s[],int n),用于计算有n个元素的指针数组s中最长 ...
- C语言变长数组 struct中char data[0]的用法
摘要:在实际的编程中,我们经常需要使用变长数组,但是C语言并不支持变长的数组.此时,我们可以使用结构体的方法实现C语言变长数组. struct MyData { int nLen; char d ...
- char data[0]用法总结
struct MyData { int nLen; char data[0]; }; 开始没有理解红色部分的内容,上网搜索下,发现用处很大,记录下来. ...
- char data[0]在struct末尾的用法
在实际的编程中,我们经常需要使用变长数组,但是C语言并不支持变长的数组.此时,我们可以使用结构体的方法实现C语言变长数组. struct MyData { int nLen; char data[0] ...
- 面试官问:malloc(0)时程序会返回什么?
今天跟大家找了篇文章,主要是一个面试中的有趣问题,其实有些问题在开发中没有遇到过会很难回答出来,如果在面试过程中回答正确,皆大欢喜,拿到offer的概率更大:回答不出来也不要信口开河,面试官主要看的是 ...
最新文章
- 从抵触到力推,.Net Core 的成功让微软正视开源
- Vue、React打包文件放在服务器,浏览器存在缓存问题的解决
- 【机器学习入门到精通系列】正则化解决过拟合问题(附Iris-L1 正则化代码)
- python查看图片的源代码_python获取图片元数据的代码
- 第16天学习Java的笔记(标准类,Scanner)
- 服务器上如何安装两个php网站,服务器安装两个php版本吗
- Java 在 CMD 环境下编译
- c语言中整形数据分为几进制,c语言中整型数据中的8进制以及16进制数据 – 手机爱问...
- 鸿蒙系统都有谁参与,华为鸿蒙系统功能有什么特别的-华为鸿蒙系统有什么新功能...
- 模型相关:SolidWorks创建Cube模型,在3DMax中给不同面添加不同颜色,导出自带纹理的FBX至Unity
- 干货 | 基于JMP的方差分析及两两比较的思路与实现
- 模具基础篇:直线度、平面度、圆度等这些形位公差你都了如指掌?
- python二元一次方程组用鸡兔同笼的思路来写编程_应用二元一次方程组——鸡兔同笼教学设计方案...
- android 触摸屏校准软件,触摸屏软件(eGalaxTouch)下载_触摸屏软件(eGalaxTouch)官方下载-太平洋下载中心...
- 虚拟机配置NAT网络后ping不通
- 中南大学计算机学院复试2021,34所自划线院校2021考研复试分数线-2021中南大学考研分数线已公布...
- 【PMP】PMBOK 笔记 第12章 项目采购管理
- 利用python实现m4a格式到MP3的转换
- 软件测试——佣金问题测试用例练习
- java(tm)6 update 45_Java(TM) 6 Update