Ins*_*sin 0 c++ memory arrays sizeof memset
以下三个命令有什么区别?
假设我们声明一个包含10个元素的数组arr.
int arr[10];
Run Code Online (Sandbox Code Playgroud)
现在命令是:
命令1:
memset(arr,0,sizeof(arr));
Run Code Online (Sandbox Code Playgroud)
和命令2:
memset(arr,0,10*sizeof(int));
Run Code Online (Sandbox Code Playgroud)
这两个命令在程序中平稳运行,但以下命令不是
命令3:
memset(arr,0,10);
Run Code Online (Sandbox Code Playgroud)
那么3个命令有什么区别?
案例#1:sizeof(arr)返回10*sizeof(int)
案例#2:sizeof(int) * 10返回同样的事情
案例#3:10返回10
一个int占用多个字节(通常在32位上为4).因此,如果你做40了第三种情况,它可能会起作用.但从来没有真正这样做过.
| 归档时间: |
|
| 查看次数: |
657 次 |
| 最近记录: |