记录一些c++二维数组以及指针的使用

首先,先定义一个结构体

struct myPtr
{
	int *x = {nullptr};
	int *y = { nullptr };
	int *z = { nullptr };
};

给自定义结构体开辟空间

void mallocBuf(myPtr** _ptr,int arraySize)
{
	//开辟空间,并赋值.
	*_ptr = new myPtr();

	(*_ptr)->x = new int[5];
	(*_ptr)->y = new int[5];
	(*_ptr)->z = new int[5];

	for (int i = 0; i < 5; i++)
	{
		(*_ptr)->x[i] = rand() % 10;
		(*_ptr)->y[i] = (*_ptr)->x[i] +1;
		(*_ptr)->z[i] = (*_ptr)->x[i] +2;
	}
}

接下来测试代码

void test()
{
		myPtr **_ptrList = new myPtr*[5];
		for (int i = 0; i < 5; i++)
		{
			mallocBuf((_ptrList + i), 5);
		}
				for (int i = 0; i < 5; i++)
					{
						std::cout << "---------------" << i << std::endl;
						if (_ptrList != nullptr)
						{
							for (int j = 0; j < 5; j++)
							{
								if (_ptrList[i].x != nullptr && _ptrList[i].y != nullptr&& _ptrList[i].z != nullptr)
								{
									std::cout << _ptrList[i].x[j] << " " << _ptrList[i].y[j] << " " << _ptrList[i].z[j] << "  |";
								}
								else
								{
									std::cout << "_ptrList[i].x is nullptr" << std::endl;
								}
							}
						}
						}
					**//释放空间.**
					for (int i = 0; i < 5; i++)
					{
						if (_ptrList[i] != nullptr)
						{
							**//释放内部空间**.
							delete[] _ptrList[i]->x;
							delete[] _ptrList[i]->y;
							delete[] _ptrList[i]->z;
		
							delete _ptrList[i];
						}
					}
		
					delete[]_ptrList;

}

这个就是二维指针的简单使用方式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章