Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何正确地分配一个动态数组,创建一个int并将其分配给一个具有值的动态数组? 我正在为C++类工作,我需要从另一个指针动态分配一个新的int、数组和指针来执行动态内存分配。p>_C++_Loops_Dynamic Programming_Dynamic Memory Allocation - Fatal编程技术网

如何正确地分配一个动态数组,创建一个int并将其分配给一个具有值的动态数组? 我正在为C++类工作,我需要从另一个指针动态分配一个新的int、数组和指针来执行动态内存分配。p>

如何正确地分配一个动态数组,创建一个int并将其分配给一个具有值的动态数组? 我正在为C++类工作,我需要从另一个指针动态分配一个新的int、数组和指针来执行动态内存分配。p>,c++,loops,dynamic-programming,dynamic-memory-allocation,C++,Loops,Dynamic Programming,Dynamic Memory Allocation,起初,我正在努力创建一个新的int来为我的新数组提供一个int,但是我得到了编译,并且怀疑我的声明是否正确 int *dmaArray = new int; *dmaArray = 4; 然后,我将其放入一个动态创建的数组中,但我不知道如何声明数组的值,因为它错误地说“不能转换为int”。我做了一些思考,我相信这是因为它是声明的,需要在声明时初始化;我不能,因为声明本身已经是一个声明(新的) int * nodeValues = new int[*dmaArray]; nodeValues[*

起初,我正在努力创建一个新的int来为我的新数组提供一个int,但是我得到了编译,并且怀疑我的声明是否正确

int *dmaArray = new int;
*dmaArray = 4;
然后,我将其放入一个动态创建的数组中,但我不知道如何声明数组的值,因为它错误地说“不能转换为int”。我做了一些思考,我相信这是因为它是声明的,需要在声明时初始化;我不能,因为声明本身已经是一个声明(新的)

int * nodeValues = new int[*dmaArray];
nodeValues[*dmaArray] = {6, 2, 28, 1};

循环不能在后面赋值,因为这些值不是连续的,也不是任何模式。(不管怎样,我需要使用数组,因为赋值是这样说的。

这不是如何声明
动态数组并初始化它:

int * nodeValues = new int[*dmaArray];
nodeValues[*dmaArray] = {6, 2, 28, 1};
因此,您可以这样声明:

int* nodeValues = new int[dmaArray];
要为其指定值,请使用循环或手动:

nodeValues[0] = 6;
nodeValues[1] = 2;
nodeValues[2] = 28,
nodeValues[3] = 1;
请记住,数组使用索引来读/写它的元素,因为它是内存中彼此相邻的某种类型的数据

因此,如果要打印阵列:

for(auto i(0); i != dmaArray; ++i)
    std::cout << nodeValues[i] << ", ";
我想出了办法:


int*nodeValues=new int[*dmaArray]{6,5,28,1};

你的代码太混乱了。他们不应该在你的课堂上告诉你怎么做吗?可能的重复你有一些基本的理解问题。我建议通过一个。在末尾添加大括号和一些值(int*nodeValues=new int[*dmaArray]{6,5,28,1};)“int[*dmaArray]”是什么意思?
delete[] nodeValues;