Mình đang vọc về con trỏ, có thử cấp phát động mảng 2 chiều thì sai ở hàm X. Tại sao nó lại sai vậy mọi người ?
#include <iostream>
#include <cstdlib>
using namespace std;
//========prototype================
void X(int **arr, int row);
void initArr2d(int **arr,int row,int col);
void deleteArr2d(int **arr,int row,int col);
//==============================================
int main() {
int **arr = NULL;
int row = 3;
X(arr, row);
cout << "XXXXXX" << endl;
initArr2d(arr, row, row);
cout << "XXXXXX" << endl;
deleteArr2d(arr, row, row);
cout << "XXXXXX" << endl;
}
// ===============function======================
void X(int **arr, int row) {
if ( (arr = new int*[row]) == 0) {
cout << "No suficient memory.";
exit(1);
}
}
void initArr2d(int **arr,int row,int col) {
for (int i = 0 ; i < row ; i++)
{
if ( (arr[i] = new int[col]) == 0 )
{
cout << "No sufficient memory.";
exit(1);
}
}
}
void deleteArr2d(int **arr,int row,int col) {
for (int i = 0 ; i < row ; i++)
delete [] arr[i];
delete [] arr;
}


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