Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.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
C++ 无法使用delete";未分配要释放的指针";_C++_Heap_Delete Operator - Fatal编程技术网

C++ 无法使用delete";未分配要释放的指针";

C++ 无法使用delete";未分配要释放的指针";,c++,heap,delete-operator,C++,Heap,Delete Operator,以下是我的功能: void Tetris::place_square(int* coords,char type){ if (coords[1]>heights[coords[0]]){ char* old=data[coords[0]]; data[coords[0]]=new char[coords[1]]; for (unsigned int i=0; i<heights[coords[0]]; ++i){

以下是我的功能:

void Tetris::place_square(int* coords,char type){
    if (coords[1]>heights[coords[0]]){
        char* old=data[coords[0]];
        data[coords[0]]=new char[coords[1]];
        for (unsigned int i=0; i<heights[coords[0]]; ++i){
            data[coords[0]][i]=old[i];
        }
        for (unsigned int i=heights[coords[0]]; i<coords[1]; ++i){
            data[coords[0]][i]=" "[0];
        }
        data[coords[0]][coords[1]-1]=type;
        heights[coords[0]]=coords[1];
        delete old;
    } else {
        data[coords[0]][coords[1]-1]=type;
    }
}
void俄罗斯方块::place_square(int*coords,字符类型){
if(坐标[1]>高度[0]]{
char*old=数据[coords[0]];
数据[coords[0]]=新字符[coords[1]];

对于(无符号整数i=0;i查看此部分:

char* old=data[coords[0]];
data[coords[0]]=new char[coords[1]];
我不确定
数据
数组中有什么,但看起来您正在分配一个尚未初始化的指针

如果您正在初始化

data[i]=new char[0];

然后,您还应该使用
delete[]

查看本节:

char* old=data[coords[0]];
data[coords[0]]=new char[coords[1]];
我不确定
数据
数组中有什么,但看起来您正在分配一个尚未初始化的指针

如果您正在初始化

data[i]=new char[0];

然后,您还应该使用
delete[]

查看本节:

char* old=data[coords[0]];
data[coords[0]]=new char[coords[1]];
我不确定
数据
数组中有什么,但看起来您正在分配一个尚未初始化的指针

如果您正在初始化

data[i]=new char[0];

然后,您还应该使用
delete[]

查看本节:

char* old=data[coords[0]];
data[coords[0]]=new char[coords[1]];
我不确定
数据
数组中有什么,但看起来您正在分配一个尚未初始化的指针

如果您正在初始化

data[i]=new char[0];

然后您还应该使用
delete[]

进行删除。该地址表明
data[coords[0]]
以前指向自动变量。您只能对
new
分配的内容使用
delete

此外,当事物由
new[]
分配时,您应该使用
delete[]
,正如本例中所示


要解决此问题,您需要检查
数据的初始化
以及任何可能更新
数据[x]
的代码。也可能
坐标[0]
超出
数据的范围

地址指示
数据[0]]
以前指向一个自动变量。您只能对
new
分配的内容使用
delete

此外,当事物由
new[]
分配时,您应该使用
delete[]
,正如本例中所示


要解决此问题,您需要检查
数据的初始化
以及任何可能更新
数据[x]
的代码。也可能
坐标[0]
超出
数据的范围

地址指示
数据[0]]
以前指向一个自动变量。您只能对
new
分配的内容使用
delete

此外,当事物由
new[]
分配时,您应该使用
delete[]
,正如本例中所示


要解决此问题,您需要检查
数据的初始化
以及任何可能更新
数据[x]
的代码。也可能
坐标[0]
超出
数据的范围

地址指示
数据[0]]
以前指向一个自动变量。您只能对
new
分配的内容使用
delete

此外,当事物由
new[]
分配时,您应该使用
delete[]
,正如本例中所示



要解决此问题,您需要检查
数据的初始化以及可能更新
数据[x]
的任何代码。也可能
coords[0]
不在
数据的范围之内

在调用
place\code>?
data[0]之前如何填充
data
coords
是用
数据[i]=new char[0]初始化的;
coords只是一个大小为2的数组,有两个整数
coords[0]
始终是数据的有效索引在调用
place\u square
之前如何填充
数据和
coords
数据[coords[0]];
是用
数据[i]=new char[0]初始化的
coords只是一个大小为2的数组,有两个整数
coords[0]
始终是数据的有效索引在调用
place\u square
之前如何填充
数据
coords
数据[coords[0];
是用
data[i]=新字符[0]初始化的
coords只是一个大小为2的数组,有两个整数
coords[0]
始终是数据的有效索引在调用
place\u square
之前如何填充
数据
coords
数据[coords[0];
是用
data[i]=新字符[0]初始化的;
coords只是一个大小为2的数组,带有两个整数
coords[0]
始终是数据的有效索引否,
data[coords[0];
是用
data[i]=new char[0]初始化的
这样初始化数组有什么原因吗?这实际上使以后必须释放的指针数量增加了一倍。请看一下大小为0的分配。不,
数据[coords[0]];
是用
数据[i]=new char[0]初始化的
这样初始化数组有什么原因吗?这实际上使以后必须释放的指针数量增加了一倍。请看一下大小为0的分配。不,
数据[coords[0]];
是用
数据[i]=new char[0]初始化的
这样初始化数组有什么原因吗?这实际上使以后必须释放的指针数量增加了一倍。请看一下大小为0的分配。不,
数据[coords[0]];
是用
数据[i]=new char[0]初始化的
这样初始化数组有什么原因吗?这实际上只是使以后必须释放的指针数量增加了一倍。请查看有关大小为0的分配。
数据[coords[0]];
是用
数据[i]=new char[0]初始化的;
@D