1 _countof:是系统定义的一个宏,求取元素的数组的元素个数
2 sizeof:运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,获得保证能容纳实现所建立的最大对象的字节大小
3 strlen:是一个函数,在运行时执行,返回字符串的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL。返回的长度大小不包括NULL
4 _Msize :是一个函数, 返回开辟空间的大小
上代码:
// 1 _countof
char _aArray[12] = { 1,2,3,4 };
int elements = _countof(_aArray);
printf("_countof(_aArray):%d\n\n", elements);
// 2 sizeof
char* _pBMalloc = (char*)malloc(sizeof(char) * 512);
char * _pBNew = new char[10];
char _bArray[15] = {};
printf("sizeof(_pMalloc): %d\n", sizeof(_pBMalloc));
printf("sizeof(_pNew): %d\n", sizeof(_pBNew));
printf("sizeof(_bArray): %d\n\n", sizeof(_bArray));
// 3 strlen
char* _pCMalloc = (char*)malloc(sizeof(char) * 512);
char * _pCNew = new char[10];
char _cArray[15] = { '?', '?', '?', '?'};
_pCNew = "????-????";
_pCMalloc = "????-????-????";
printf("strlen(_pMalloc): %d\n", strlen(_pCMalloc));
printf("strlen(_pNew): %d\n", strlen(_pCNew));
printf("strlen(_cArray): %d\n\n", strlen(_cArray));
// 4 _msize
char* _pDMalloc = (char*)malloc(sizeof(char) * 512);
char * _pDNew = new char[10];
char _dArray[15] = {};
printf("_msize(_pDMalloc): %d\n", _msize(_pDMalloc));
printf("_msize(_pDNew): %d\n", _msize(_pDNew));
//ERROR: _msize(_dArray)
//printf("_msize(_dArray): %d\n\n", _msize(_dArray));
输出:
能放几个元素
这个单位空间是多少
这个空间使用了多少
malloc 或 new 出来的空间大小
我再这里犯过错
每次我只能接受4个字符,
网友评论