Giải phóng bộ nhớ cho con trỏ hai chiều bị lỗi

#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;

void show(int **p){
for(int j=0;j<6;j++){
for(int i=0;i<2;i++){
	cout<<p[j][i]<<" ";
}
	cout<<endl;
}
}

int main()	{

srand(time(NULL));
int **p=new int*[4];
for(int i=0;i<4;i++){
	p[i]=new int[3];
}
for(int j=0;j<4;j++){
for(int i=0;i<3;i++){
	p[j][i]=rand()%10;
}
}
for(int j=0;j<4;j++){
for(int i=0;i<3;i++){
	cout<<p[j][i]<<" ";
}
	cout<<endl;
}

show(p);
for(int i=0;i<4;i++){
	delete[] p;
}
delete p;


	return 0;
}

Lỗi đây ạ

Bạn thấy điều gì không ổn ở đây không?
Sao lặp 4 lần mà cả 4 lần đều gọi đến delete[] p?

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?