在下面的代码中,我希望在数组1中的所有10元素中初始化x.但是,它似乎没有起作用.我可以知道我在这里缺少什么吗?
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;
}
Run Code Online (Sandbox Code Playgroud)
当您结束初始化循环时,您的x指向超出最后分配的元素.在第二个forloop之前,你需要重新调整x以指向内存的开始
x -= 10;
Run Code Online (Sandbox Code Playgroud)
更好的方法是将你的行走指针作为副本
int *xcopy = x;
for(int i =0; i <10; ++i){
*xcopy = 1;
xcopy++;
}
Run Code Online (Sandbox Code Playgroud)
或使用索引来更新值
for(int i =0; i <10; ++i){
x[i] = 1;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |