[英]How can I correctly set all elements of an array to a negative value?
我有一个程序,它要求用户输入一定数量的元素并创建数组,然后在将所有元素初始化为零后,现在将所有元素设置为负 -1。 我有一个分段错误,我认为这是由于我将元素设置为 -1 的代码造成的。 将所有元素设置为负值的更好方法是什么? 如果可能,请解释原因。
#include <cstddef>
#include <iostream>
using namespace std;
int main(int argc, char * argv[]) {
cout << endl << "A dynamic array creation program" << endl;
size_t length = 0;
int * intArray = nullptr;
cout << endl << "Input number of elements: ";
cin >> length;
cout << endl << "Allocating memory to create the dynamic array" << endl;
intArray = new int [length];
cout << endl << "Initializing all elements to 0" << endl;
for (size_t i=0; i<length; ++i)
intArray[i] = 0;
cout << endl << "Deallocating the dynamic array" << endl;
delete [] intArray;
intArray = nullptr;
cout << endl << "Setting all elements to negative values" << endl;
for (size_t i=0; i<length; ++i)
intArray[i] = -1;
return 0;
}
在将所有元素初始化为零后,它现在将所有元素设置为负 -1。
在将所有元素设置为零后,它会执行其他操作。 它删除数组。 元素在您分配 -1 的位置不再存在。
将所有元素设置为负值的更好方法是什么?
在删除数组之前执行此操作。
如果可能,请解释原因。
因为如果您尝试访问生命周期之外的对象,程序的行为将是未定义的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.