1
請幫我理解下面的原因。在我的comp中,當我嘗試打印var的值時,它只打印0。簡單的常量內存示例不起作用
#include<stdio.h>
__constant__ float pivot;
__global__ void kernel(float *set){
*set = pivot;
}
void main(){
float c[] = {1,3,4};
cudaError_t err = cudaMemcpyToSymbol(pivot,&c[2], sizeof(float));
/*
float test;
cudaMemcpyFromSymbol(&test,pivot,sizeof(float));
printf("the value of test is %f",test);
*/
if(err!=0){
printf("some error\n");
getchar();
}
float *st;
cudaMalloc((void**)&st, sizeof(float));
kernel<<<1,1>>>(st);
float *var = (float*)malloc(sizeof(float));
cudaMemcpy(var, st, sizeof(float),cudaMemcpyDeviceToHost);
printf("the value of st is %f",var);
getchar();
}
那麼var是一個指針,而不是一個浮點數,你可能想要打印* var ... – Dan 2011-12-27 14:28:31
@Dan:謝謝。這解決了它。郵政是一個答案,我會接受它 – Programmer 2011-12-27 15:04:30