Я выделил память для массива беззнаковых символов с помощью cudaMalloc и инициализировал с помощью cudaMemset.
unsigned char *device_channel_data;
cudaMalloc( device_channel_data, sizeof(unsigned char) * image_size);
cudaMemset( *device_channel_data, 0, sizeof(unsigned char) * image_size);
После этого я проверяю, действительно ли он установлен в 0, копируя данные обратно на хост,Я печатаю некоторые элементы для проверки данных, но напечатанные значения являются случайными.
unsigned char *host_channel_channel;
cudaMemcpy(host_channel_channel, device_channel_data, sizeof(unsigned char) * image_size, cudaMemcpyDeviceToHost);
for(int i = 0; i < 10; i ++)
{
std::cout<< (int)host_channel_channel[i] << std::endl;
}
Я хочу инициализировать данные device_channel равными 0. Мои знания в области указателей и программирования на CUDA очень ограничены. Я только начинаю с программирования CUDA. Заранее спасибо за помощь.