如果我要创建一个数组int* array = new int[10];并用值填充数组的一部分,我如何检查填充了多少数组?我想循环并检查每个值是否是默认值,但我不确定每个数组元素的默认值是什么。它会是null 0垃圾值还是垃圾值?
Gar*_*day 13
这是在创建数组时如何在 C++ 中设置默认值。
int array[100] = {0};
Run Code Online (Sandbox Code Playgroud)
现在每个元素都设置为0. 如果不这样做,每个元素都是垃圾,如果使用,将是未定义的行为。
并非所有语言都是这样。Java 在声明数据结构时有默认值,但 C++ 没有。
你不能做你希望做的事,而不是当类型是int.
数组的未初始化元素将具有不可预测的值。此外,访问这些元素会导致未定义的行为。
您可以在分配时使用以下命令将数组元素初始化为标记值:
int* ptr = new int[10]{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
Run Code Online (Sandbox Code Playgroud)
如果-1没有,请使用任何适合您的哨兵值。
| 归档时间: |
|
| 查看次数: |
14915 次 |
| 最近记录: |