我将分配主机内存的方法从方法 1 更改为方法 2,如下面的代码所示。代码可以编译运行,没有任何错误。我只是想知道使用方法2为指向指针的指针分配内存是一种正确的方法还是任何副作用。
#define TESTSIZE 10
#define DIGITSIZE 5
//Method 1
int **ra;
ra = (int**)malloc(TESTSIZE * sizeof(int));
for(int i = 0; i < TESTSIZE; i++){
ra[i] = (int *)malloc(DIGITSIZE * sizeof(int));
}
//Method 2
int **ra;
cudaMallocHost((void**)&ra, TESTSIZE * sizeof(int));
for(int i = 0; i < TESTSIZE; i++){
cudaMallocHost((void**)&ra[i], DIGITSIZE * sizeof(int));
}