如何分配一个";const void*”;至“a”;常数uint64“t*”;在cuda c?

如何分配一个";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*”

我想将“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*”的实体


有人能帮我解决这个问题吗?

正如@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。