c++unsigned char的輸出問題


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM