_countof、sizeof、strlen、_Msize的区别和用法(我再这里犯过错)

_countof、sizeof、strlen、_Msize的区别和用法(我再这里犯过错),第1张

1 _countof: 是系统定义的一个宏,求取元素的数组的元素个数

2 sizeof: 运算符,在头文件中typedef为unsigned int,其值在编唤差译时即计算好了,获得保证能容纳实现所建立的最大对象的字节大小

3 strlen: 是一个函数,在运行时执行,返回字符串的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结源链巧束符NULL。返回的长度大小不包括NULL

4 _Msize : 是一个函数, 返回开辟空间的雹键大小

能放几个元素

这个单位空间是多少

这个空间使用了多少

malloc 或 new 出来的空间大小

每次我只能接受4个字符,

获取空间大小的方法主要有_countof、sizeof、strlen、_msize。

注明者意:上述四种方法除了strlen,其他均不适用于数组或指针作为函数参数的情况,而strlen不适用于数组中含有激迹薯0x00情况。因此在C++中如果数组或指针作为参数,请额外添加一个参数记录空间大小

比较简单的方法就是_msize()函数,这个函数适用于char*类型的指针,如果是其他类型例如int*,返回的结果会是开辟的空间个数*指针步长。

#include <iostream>

using namespace std

int main()

{

char* a = new char[10]

int* b = new int[10]

cout <<_msize(a) <<endl <<_msize(b)

}

复制

以上代码段返回结果分别为10,40。

由此可知,_msize()函数(_msize()函数使用之前一定要检查指针是否为空,否则会报错)相当于sizeof()运算符(注意:sizeof不是一个函数,而是一个运算符),但是sizeof ()运算符一般应州锋用于计算数组空间的大小,包括字符数组结尾的‘\0’,这个运算符不适用于指针new出来的空间。

当然,这两者都需要除以指针的步长才能得到所需的空间长度,与sizeof对应的还有一个宏——_countof(),这个宏可以直接得出数组空间的长度,但是它不能用于计算指针开辟的空间长度。

另外,使用strlen()可以计算出已使用的空间大小,它的特性是遇到‘\0’会结束,但不包括这个'\0',因此指针类型的字符数组中如果含有'\0'则不适用此情况。

直接运行日文原版需要使用AppLocale或者NTlea进行引导

用applocale转区(攻略太多打不过来,发物首两个教程网址:http://jingyan.baidu.com/article/066074d6693e58c3c21cb0e5.html

http://www.yxdown.com/gonglue/66011.html

也要山圆更新显卡驱动

之后通过applocale就能玩游戏,日本游戏一般都这样罩唯数~~~好了,求采纳


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12302686.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存