I have a problem with using of pointer to pointer in cuda. Code snippet is below.
char** d_ppcPtr, *d_pcPtr, *h_pcPtr;
cudaMalloc(&d_ppcPtr, sizeof(char*) * 10);
h_pcPtr = (char*)malloc(sizeof(char) * 100);
for(int i = 0; i < 10; i ++)
{
cudaMalloc(&d_pcPtr, sizeof(char) * 100);
cudaMemset(d_pcPtr, 1, sizeof(char) * 100);
cudaMemcpy(&d_ppcPtr[i], &d_pcPtr, sizeof(char*), cudaMemcpyHostToDevice);
cudaMemcpy(h_pcPtr, d_ppcPtr[i], sizeof(char) * 100, cudaMemcpyDeviceToHost); //crash here
cudaFree(d_ppcPtr[i]); //crash also here
}
cudaFree(d_ppcPtr);
how can i fix above two crashes? Thanks in advance.