(void **)& x和(void *)x之间的区别是什么?我会给你一些代码,请帮助我。(void **)&x和(void *)x有什么区别?
float *xd;
int size=width*width*size(float);
cudaMalloc((void **)&x,size); 1
cudaMalloc((void *)x,size); 2
cudaMalloc(&x,size); 3
cudaMalloc(*x,size); 4
cudaFree(xd);
我只是想知道区别。
的cudaMalloc()函数的第一个参数是一个指针变量必须分配之后指向已分配对象的地址。指针变量的地址应该转换为(void **),因为函数需要一个通用指针值;内存分配函数是一个通用函数,不限于任何特定类型的对象。该地址允许cudaMalloc()函数将分配对象的地址写入指针变量中。cudaMalloc()函数的第二个参数以字节为单位给出了要分配的对象的大小。第二个参数的用法与C malloc()函数的size参数一致。
[C++ decl](http://linux.die.net/man/1/c++decl)可能在这里使用 – Eric 2012-08-13 02:31:02
它与&x和x之间的区别非常相似。不知道为什么你会认为两件完全不同的事情是相同的,这样的问题是没有用的。 – 2012-08-13 02:44:01