繁体   English   中英

如何正确地将数组的所有元素设置为负值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM