微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – 将动态数组初始化为0?

int main()
{
    int arraySize;
    int arrayMain[arraySize-1];
    cout << "\n\nEnter Total Number of Elements in Array.\n\n";
    cin >> arraySize;
    arrayMain[arraySize-1]={0};
    cout <<"\n\n" <<arrayMain;
    return 0;
}

编译上面的代码时,我的编译器冻结了.我对如何将动态数组设置为0感到困惑?

解决方法

你使用std :: vector:

std::vector<int> vec(arraySize-1);

您的代码无效,因为1)arraySize未初始化,2)您不能在C中使用可变长度数组.所以要么使用向量,要么动态分配内存(这是std :: vector在内部执行的操作):

int* arrayMain = new int[arraySize-1] ();

注意最后的() – 它用于对元素进行值初始化,因此数组的元素将设置为0.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐