您的位置:首页 > 编程语言 > C语言/C++

c++使用指针指向的字符串,如何判断字符串结束

2016-05-18 21:18 295 查看
IplImage* img = cvLoadImage(ImageName, CV_LOAD_IMAGE_GRAYSCALE);
unsigned char *img_data = (unsigned char *)(img->imageData);
int widthstep = img->widthStep;
//将一维指针img_data指向的内存中的值写入成员变量二维指针data所指的内存中
//write your code here
height=img->height;
width=img->width;
unsigned char *p=img_data;
data=new unsigned char *[height];
for(int i=0;i<width;i++)
{
data[i]=new unsigned char [width];
}

int i=0;
while(p!=NULL)
{
for(int j=0;j<widthstep;j++)
{
*(*(data+i)+j)=*p;
p++;
}
i++;
}

这样会陷入死循环,原因是p是指针,它的值是地址,例如char * p = "asdfsdafsd "; 但是p != 'a ', 而是0x1010010(举例) 

所以应将while语句中的P!=NULL改为  *p!=NULL。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: