Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.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
检测到glibc:c+中出现双重释放或损坏(out)错误+; 我用C++编写。我从用户那里得到了4个值,但当我得到最后一个值时,我得到了这个错误。现在,我将从用户那个里获得值,过一段时间,我将使用这个函数。所以我就这样写 double* array1; double* array2; array1 = (double*) malloc(2); array2 = (double*) malloc(2); cout<< "enter value 1" << endl; cin >> array1[1]; cout<< "enter value 2" << endl; cin >> array1[2]; cout<< "enter value 3" << endl; cin >> array2[1]; cout<< "enter value 4" << endl; cin >> array2[2]; cout<< "program is over"<< endl;_C++ - Fatal编程技术网

检测到glibc:c+中出现双重释放或损坏(out)错误+; 我用C++编写。我从用户那里得到了4个值,但当我得到最后一个值时,我得到了这个错误。现在,我将从用户那个里获得值,过一段时间,我将使用这个函数。所以我就这样写 double* array1; double* array2; array1 = (double*) malloc(2); array2 = (double*) malloc(2); cout<< "enter value 1" << endl; cin >> array1[1]; cout<< "enter value 2" << endl; cin >> array1[2]; cout<< "enter value 3" << endl; cin >> array2[1]; cout<< "enter value 4" << endl; cin >> array2[2]; cout<< "program is over"<< endl;

检测到glibc:c+中出现双重释放或损坏(out)错误+; 我用C++编写。我从用户那里得到了4个值,但当我得到最后一个值时,我得到了这个错误。现在,我将从用户那个里获得值,过一段时间,我将使用这个函数。所以我就这样写 double* array1; double* array2; array1 = (double*) malloc(2); array2 = (double*) malloc(2); cout<< "enter value 1" << endl; cin >> array1[1]; cout<< "enter value 2" << endl; cin >> array1[2]; cout<< "enter value 3" << endl; cin >> array2[1]; cout<< "enter value 4" << endl; cin >> array2[2]; cout<< "program is over"<< endl;,c++,C++,大体上,我将像这样使用此函数: array2 = function(); A) 您正在为似乎是一个双精度数组的内容分配2个字节。B)你返回一个指向局部变量的指针。这是C++。你应该使用新< /Cord>来分配动态数组,或者更好地使用 STD::vector < /COD>。你的代码> MalCube()/Cuff>分配两个字节的内存。这还不足以容纳一个double。(可能是malloc(2*sizeof(double))。然后通过array1[2]/array2[2]?(数组索引以[0]开头)

大体上,我将像这样使用此函数:

array2 = function();

A) 您正在为似乎是一个双精度数组的内容分配2个字节。B)你返回一个指向局部变量的指针。这是C++。你应该使用<代码>新< /Cord>来分配动态数组,或者更好地使用<代码> STD::vector < /COD>。你的代码> MalCube()/Cuff>分配两个字节的内存。这还不足以容纳一个
double
。(可能是
malloc(2*sizeof(double))
。然后通过
array1[2]
/
array2[2]
?(数组索引以
[0]
开头)还有,Mgetz所说的……哦,还有:你发布的代码不可复制。C++中的数组拼写为:代码> STD::矢量< /代码>。如果你被教过其他任何方法来制造数组,那么这一定是你的老师阴谋让你在市场上缺乏竞争力。
array2 = function();