【发布时间】:2011-08-15 15:48:33
【问题描述】:
我不明白为什么下面的简单代码在 c[0] = d 处失败
void test(char **a){
char **c;
cudaMemcpy(c,a, sizeof(char*), cudaMemcpyDeviceToHost);
char temp[2];
for(int i = 0 ; i< 2; i++){
temp[i ] = temp[i] & 0 ;
}
char *d;
cudaMalloc((void**)&d, 2*sizeof(char));
cudaMemcpy(d, temp, 2 * sizeof(char), cudaMemcpyHostToDevice);
c[0] = d;
}
void main(){
char **a ;
cudaMalloc((void**)&a, sizeof( char*));
test(a);
}
【问题讨论】:
-
你希望上面的代码做什么?它似乎没有执行任何有用的功能,它分配内存而不随后释放它。
-
@Paul:我只希望 a 的第一个元素指向全局内存中的 temp 副本。
-
@Paul:请告诉我为什么会引发编译时错误
标签: cuda parallel-processing nvidia