如何分配一个";const void*”;至“a”;常数uint64“t*”;在cuda c?
我想将“const void*”分配给cuda c中的“const uint64_t*” 我这样做过,如何分配一个";const void*”;至“a”;常数uint64“t*”;在cuda c?,cuda,gpgpu,Cuda,Gpgpu,我想将“const void*”分配给cuda c中的“const uint64_t*” 我这样做过, void func(const void *buffer) { const uint64_t *words = buffer; } 但我犯了这样的错误 void func(const void *buffer) { const uint64_t *words = buffer; } 错误:“const void*”类型的值不能用于初始化 类型为“const uint64\u t*”
void func(const void *buffer)
{
const uint64_t *words = buffer;
}
但我犯了这样的错误
void func(const void *buffer)
{
const uint64_t *words = buffer;
}
错误:“const void*”类型的值不能用于初始化
类型为“const uint64\u t*”的实体
有人能帮我解决这个问题吗?正如@sharptooth所指出的,这为我解决了这个问题:
#include <stdio.h>
#include <stdint.h>
void func(const void *buffer)
{
const uint64_t *words = (const uint64_t *) buffer;
}
int main(){
void *my_buf=0;
func(my_buf);
return 0;
}
#包括
#包括
无效函数(常量无效*缓冲区)
{
const uint64_t*字=(const uint64_t*)缓冲区;
}
int main(){
void*my_buf=0;
func(my_buf);
返回0;
}
@user2214792根据此代码将在多少个不同的系统上运行以及具体的用例,最好使用uintptr\t。