将未使用的值初始化为0 c++数组

Initialize unused values to 0 c++ array

本文关键字:c++ 数组 初始化 未使用      更新时间:2023-10-16

要将所有值初始化为0,我们可以执行

int arr[5] = {0};
arr[1]     = 1  // index 1 is 1 all others contains value of 0

有可能对动态创建的数组执行类似的操作吗?

int m_size = 5;
int *one = new int[m_size]

尤其是,当我使用重新分配阵列时

if( i > m_size ){ // i as index
            int tmp = m_size;
            while( i > tmp){
                tmp*=2;
            }
            double *temp = new double[tmp];
            memcpy(temp,one,m_size);
            m_size = tmp;
            delete[] one;
            one = temp;

你可以像这样实现你想要的东西(末尾的括号):

double *temp = new double[tmp]();