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

防止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)  // 没越界