_countof宏:计算数组空间的长度
sizeof:计算指针开辟的空间长度
sizeof ()运算符一般应用于计算数组空间的大小,包括字符数组结尾的‘\0’,这个运算符不适用于指针new出来的空间。
strlen
不适用于数组中含有0x00情况。
计算出已使用的空间大小,它的特性是遇到‘\0’会结束,但不包括这个’\0’。
_msize:计算指针开辟的空间长度
_msize()函数使用之前一定要检查指针是否为空。
char* a = new char[10];
int* b = new int[10];
cout << _msize(a) << " " << _msize(b) << endl; // 10 40
Warning
注意:在C++中如果数组或指针作为参数,请额外添加一个参数记录空间大小。
C++学习笔记之如何获取指针开辟空间或数组空间的大小以及_countof、sizeof、strlen、_Msize的区别