gpt4 book ai didi

c++ - 动态内存的初始化c++

转载 作者:太空狗 更新时间:2023-10-29 23:32:47 26 4
gpt4 key购买 nike

在下面的代码中,我希望 1x 数组中的所有 10 元素中被初始化。但是,它似乎没有用。我可以知道我在这里缺少什么吗?

int main() {
int *x = new int[10];

for(int i =0; i <10; ++i){
*x = 1;
x++;
}

for(int i = 0; i < 10; ++i)
std::cout<<i<<" is "<<x[i]<<std::endl;

return 0;
}

最佳答案

当您结束初始化循环时,您的 x 指向最后分配的元素之外。在第二个 forloop 之前,您需要重新调整 x 以指向内存的开始

x -= 10;

更好的方法是保留您的行走指针作为拷贝

int *xcopy = x;
for(int i =0; i <10; ++i){
*xcopy = 1;
xcopy++;
}

或者使用索引更新值

for(int i =0; i <10; ++i){
x[i] = 1;
}

关于c++ - 动态内存的初始化c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30213218/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com