c++unsigned char的输出问题

Posted on 2016-07-12 12:56  Jay_L_Z  阅读(9461)  评论(0编辑  收藏  举报

unsigned char的范围是0~255,在用cout输出的时候要显示数字的话记得进行int的强制转化才可以,否则都是输出的字符,除此之外的所有比较转换成整数在做比较吧

 

除此之外,在最近的项目里由于多次运用动态内存分配,代码运用了两种分配方式简单说一下。

无论两者是服从什么标准的,用new进行分配就不用事先乘以sizeof了,但是如果用malloc来进行分配的话要乘上sizeof的,之前没有按照这个准则来做,在malloc分配的时候我们用unsigned char来分配没有乘以sizeof也通过了,是因为sizeof(unsigned char)恰恰是1,所以碰巧避过了这个错误,所以以后分配内存尽量用new吧,用malloc记得乘sizeof。

vbM->numSamples = new int[vbM->width * vbM->height];//samples
vbM->numMatch = (int32_t*)malloc(vbM->width * vbM->height * vbM->nSample * sizeof(int32_t));//how many samples match