ptr = (char *)malloc(0)
来源:互联网 发布:电子请柬制作软件 编辑:程序博客网 时间:2024/06/05 05:44
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)就会产生异常报告(地址受损)。
NULL 一般预定义为 (void *)0,指向0地址。malloc是在程序堆栈上分配空间,不会是0地址
malloc(0)是指分配内存大小为零
NULL是不指向任何实体
malloc(0)也是一种存在不是NULL
- ptr = (char *)malloc(0)
- ptr = (char *)malloc(0)
- ptr = (char *)malloc(0)
- ptr = (char *)malloc(0)
- ptr = malloc(0*sizeof(char));
- ptr = malloc(0*sizeof(char));
- ptr = malloc(0);
- 【1】ptr = malloc(0*sizeof(char))【2】关于typedef的用法总结【3】关于有符号数、无符号数和数据类型的总结
- 【1】ptr = malloc(0*sizeof(char))【2】关于typedef的用法总结【3】关于有符号数、无符号数和数据类型的总结 .
- char *ptr = hello world
- char *ptr=&character; cout<<ptr<<endl;为何乱码
- 关于char *ptr;
- char[] char* (char*) malloc()
- stupid char[0] malloc code
- while((*++ptr > '0' ) && (*++ptr <= '9' ) )的错误
- Char** ptr 到Char*的转换
- const char * ptr;char * const cp 的区别
- const char **ptr 与 char *ptr[] 的释放问题的探究
- 办公室为人处事
- Spring中bean的模式
- 部署apache服务和PHP
- Makefile之wildcard
- uboot之Makefile分析
- ptr = (char *)malloc(0)
- 当前标识没有对"Temporary ASP.NET Files"的写访问权限的解决办法
- session过期,处理ajax请求,使其重新登录
- linux 解释执行外壳脚本
- 如何将word转化为pdf文件(图解)
- CreateProcess error=87, The parameter is incorrect
- VC使用小技巧——MessageBox弹出整形数据
- 秒杀多线程第一篇(转载)
- S3C2440的定时器设置