C-解决没有结合的情况下从整数转换为较小的指针警告



当我进行此任务时:

const uint8_t *p = (uint8_t *)(uint64_t address);

我得到

conversion from integer to smaller pointer warning 

所以我想从UINT64_T整数中保存UINT8_T指针。我不能修改两种类型。

le:所以整个代码看起来像这样

typedef token{
const uint8_t *pTr;
}token;
typedef key{
uint64_t srcAddress;
}key;

在将两个结构指向输入的函数中,我想做:

token->pTr = key->srcAddress

如果您的程序中有一个UINT64_T变量,则正确的方法是:

uint64_t address = ...;
const uint8_t *p = (uint8_t *)(&address);

牢记CPU的终点也是一个好主意。

您是否想将地址值获取给具有8个8位元素的数组?如果您想这样做,您可以这样做:

uint64_t address;
uint8_t* p;
p = &address;

然后您可以将P用作数组。

这是获取诸如变量之类的内存地址,并分配给其他指针。

    uint8_t *a = (uint8_t*)malloc(sizeof(uint8_t));
    uint64_t address = (uint64_t)a;
    uint8_t *b = (uint8_t*)address;
    *b = 10;
    printf("%dn", *a);

输出10 SO a == b并在内存中具有地址address

最新更新