首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++为字符数组动态分配内存有关问题

2013-08-24 
C++为字符数组动态分配内存问题书上原文:“如果我们希望分配一个char类型的数组,假设pstr是指向char类型的

C++为字符数组动态分配内存问题
书上原文:“如果我们希望分配一个char类型的数组,假设pstr是指向char类型的指针,则可以编写下面的语句:
pstr = new char[20];
该语句为20个字符的char数组分配空间,并将其地址存储入pstr中”

验证如下:
char* pprim(nullptr);
pprim = new char[10];

执行new操作后,就出问题了。
C++为字符数组动态分配内存有关问题

但是如果用int型,就不会出现问题。
这是什么原因?char不能这样用? C++ 字符数组 new操作
[解决办法]
*pprim = 'w';
*(pprim+1)= 's';
*(pprim+2)= '\0';
pprim的值为“ws”

//写成这样是不是更好看一些?
pprim[0]='w';
pprim[1]='s';
pprim[2]=0;
pprim的值为“ws”

[解决办法]

引用:
Quote: 引用:

我与2楼的意见一致,没看到什么问题,正常分配了啊?你指的问题是什么?


补充一下,
执行new后,再执行
*pprim = 'w';
*(pprim+1)= 's';
pprim的值为“ws铪铪”
这是怎么?


没有作清空操作,里面存在垃圾数据



*pprim = 'w';
*(pprim+1)= 's';
*(pprim+2) = '\0';

热点排行