为什么从host到device值没传过去

Complex* h_signal = (Complex*)malloc(sizeof(Complex) * NX);
// Initalize the memory for the signal
for ( i = 0; i < np; i++)
{
fscanf(fp,“%f”,&x[i]);

h_signal[i].x = x[i];
h_signal[i].y = 0;

}

if(np<NX)
{
for(i=np;i<NX;i++)
{
h_signal[i].x=0.0;
h_signal[i].y=0.0;
}
}
Complex* d_signal;
cudaMalloc((void**)&d_signal, mem_size);

// Copy host memory to device
cudaMemcpy(d_signal, h_signal, mem_size,cudaMemcpyHostToDevice

Complex* h_signal = (Complex*)malloc(sizeof(Complex) * NX);
// Initalize the memory for the signal
for ( i = 0; i < np; i++)
{
fscanf(fp,“%f”,&x[i]);

h_signal[i].x = x[i];
h_signal[i].y = 0;

}

if(np<NX)
{
for(i=np;i<NX;i++)
{
h_signal[i].x=0.0;
h_signal[i].y=0.0;
}
}
Complex* d_signal;
cudaMalloc((void**)&d_signal, mem_size);

// Copy host memory to device
cudaMemcpy(d_signal, h_signal, mem_size,cudaMemcpyHostToDevice);

:sweat2:

说清楚问题

cudaMemcpy(d_signal, h_signal, mem_size,cudaMemcpyHostToDevice;
就是这句执行完之后h_signal中的值并没有传到d_signal上,而且我 在cudaMalloc((void**)&d_signal, mem_size);之后让它输出到屏幕,发现开辟的内存空间也有问题

检查它们的返回值,看那个出了问题