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

防止C语言动态数组越界解决思路

2013-08-04 
防止C语言动态数组越界char* buf new char[200]char* cp buf...if(cpbuf[200]) return true//编

防止C语言动态数组越界
char* buf = new char[200];
char* cp = buf;

...
if(cp==buf[200]) return true;
//编译错误error: ISO C++ forbids comparison between pointer and integer [-fpermissive]

囧,求解 C++
[解决办法]


if (cp == buf[199]) 
//数组下标是从0开始的!

[解决办法]
cp的类型是char*
buf[200]的类型是char
怎么比较?
[解决办法]
引用:

if (cp == buf[199]) 
//数组下标是从0开始的!


错了 你是要比较地址么?

if (cp == &buf[199]) 



[解决办法]
如果你的cp是像 for循环那样,每次+1的,可以这么判断
if (cp != buf + 200)  // 没越界

热点排行