如何获取unsigned char*
的数组的长度?
这是我的数组:
unsigned char ot[] = { 0x68,0x65,0x6c,0x6f,0x20,0x77,0x72,0x64,0x0,0x0 };
我试图这样使用strlen()
:
int length = strlen((char*) ot);
它返回我直到第一个0x0
的长度11,但是我的数组对此有何变化? (检查最后一个元素)
unsigned char ot[] = { 0x68,0xa1 };
然后我仍然得到11个元素,如何获得整个数组的“实际”长度?就像如果在某个0x0
元素之后会有数据一样。
例如:
unsigned char* file_buffer = new unsigned char[BUFFER_SIZE];
fread(file_buffer,sizeof(unsigned char),BUFFER_SIZE,input_file)
什么是最好的解决方案?因为fread()
的返回值可能会变化,所以如果我正在读取文件的最后一块,那么在某些数据之前如果文件中的0x0
会怎样?