char *ch = new char; 与 char *ch = new char[10];
来源:互联网 发布:如何让安卓手机连入mac 编辑:程序博客网 时间:2024/06/09 17:16
先上一段代码:
char *ch = new char;ch = "abcd";cout<< "ch= " << ch <<endl;delete ch;return 0;
上面的代码中,ch申请了一个字节的空间。 随后指针指向了 一个4个字节的字符串。
程序运行时没有问题。但是存在一个隐患,因为后面三个字节,已经造成内存越界了。
后面若再申请内存,分配到的内存地址刚好在 这3个字节所在的地址,就出出现内存踩飞,程序崩溃。
所以,若ch指向的内存数据越大,越容易出现这种问题。
所以正确的代码习惯应该是:
char *ch = new char[4];ch = "abcd";cout<< "ch= " << ch <<endl;delete []ch;return 0;
0 1
- char *ch = new char; 与 char *ch = new char[10];
- 解释char ch = *(char *)&d
- 初始化char *ch =字符串
- char *p=new char
- char *p=new char
- C++误区一 char ch = getchar()
- char[] & new char
- char* pin=new char(16)与char pin[16]的区别
- 用法char ch=getchar()正确性详解 《C陷阱与缺陷》 chap5.1
- char* p = new char [20] delete p 出现问题!
- char ch[10]={"yhping"}; char ch2[10]={'y','h','p','i','n','g'}; char *str = "yhping"; 区别是
- char ch[10]={"yhping"}; char ch2[10]={'y','h','p','i','n','g'}; char *str = "yhping"; 区别是什么。
- 编写一个函数 char *my_strrchr(char const *str,int ch)
- pa=new unsigned char[5];
- char *p = new char; 和 char *p2 = "abcdef"的区别
- char ch[100]; char *str; gets(ch); gets(str);
- char
- Char
- R语言从github安装recharts包
- arraylist排序
- mysql执行脚本无法插入中文
- Java在linux下调用C/C++生成的so文件
- Android中Butter Knife库使用
- char *ch = new char; 与 char *ch = new char[10];
- CocoaPod使用
- 博客开篇
- swift 闭包
- 【好】电路常识性概念三--TTL与CMOS电平 / OC门
- 概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM
- Android SQLite数据存储的通用设计
- spring配置文件详解--真的蛮详细
- winodws平台C++共享内存实现