#include "stdafx.h"
#include <iostream>
using namespace std;
//数据赋值
void GetData(int **Data)
{
int i = 10;
int j = 20;
int k = 30;
for (int nRow = 0; nRow < 5; nRow ++)
{
Data[nRow][0] = i;
Data[nRow][1] = j;
Data[nRow][2] = k;
i ++;
j ++;
k ++;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int** pRecord = NULL;
pRecord = new int*[5]; // int*[5]表示一个有5个元素的指针数组
std::cout << &pRecord << endl;
for (int i = 0; i < 5; i++)
{
pRecord[i] = new int[3]; //分配能够存放3个整数的数组区域
//int *p = new int(3) 分配一个int类型大小的区域 并将3存入其中
}
//这里将pRecord作为一个指向指针的指针,它指向一个包含5个元素的指针数组,并且每个元素指向一个有3个元素的数组,这样就构建了一个5行3列的数组
for (int i = 0; i < 5; i++) //初始化
{
for (int j = 0; j < 3; j++)
{
pRecord[i][j] = 0;
}
}
GetData(pRecord);
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 3; j++)
{
std::cout << &pRecord[i][j] << std::endl;
std::cout << pRecord[i][j] << std::endl;
}
}
for (int i = 0; i < 5; i++)
{
std::cout << &pRecord[i] << std::endl;
delete []pRecord[i];
}
std::cout << &pRecord << std::endl;
delete []pRecord; //delete pRecord 只释放了pRecord指向数组的第一个元素
cin.get();
return 0;
/*
1. int *a = new int;
delete a; //释放单个int的空间
2.int *a = new int[5];
delete [] a; //释放int数组空间
*/
}