1. 程式人生 > >C++如何動態申請二維陣列

C++如何動態申請二維陣列

最近在寫cuda相關的程式碼遇到矩陣的問題就避免不了二維動態陣列的記憶體申請。所以實際測了一下,一下程式碼可以用。

#include <iostream>
#include <stdlib.h>
int main()
{

	double **V,*h_c;
	V = (double**)malloc(10*sizeof(double*));//正確格式
	h_c = (double*)malloc(10*sizeof(double));
	for(int i = 0;i < 10;i++)
	{
		V[i] = (double*)malloc(10*sizeof(double));
	}
	
	for(int i = 0;i < 10;i++)
	{
		for(int j = 0;j < 10;j++)
		{
			V[i][j] = (double) (i+1) * j;
		}
	}
	for(int i = 0;i < 10;i++)
	{
		h_c[i] = V[0][i] + V[1][i];
		std::cout << "h_c[" << i << "]=" << h_c[i] << std::endl;
	}
	
	for(int i = 0;i < 10;i++)        //釋放記憶體格式
	{
		free(V[i]);
	}
	free(V);
	return 0;
}