gpt4 book ai didi

c - 如何使用指针处理存储在变量中的地址?

转载 作者:太空宇宙 更新时间:2023-11-04 08:07:04 24 4
gpt4 key购买 nike

我需要帮助如何处理这种情况。包含内存起始值的变量 DestinationAddress。我想使用指针将数据写入地址。可以吗?

例子:

long Data32;
long DestinationAddress;
long *temp;

Data32 = 0x00112233;
DestinationAddress = 0x00280000;
temp = DestinationAddress;
*temp = Data32;

最佳答案

当您的变量声明为:

long Data32;
long DestinationAddress;
long *temp;

你不可以使用

temp = DestinationAddress;

您可以使用:

temp = &DestinationAddress;

然后,使用:

*temp = Data32;

是将 DestinationAddress 的值设置为 Data32 的有效方法。

但是,名称 DestinationAddress 和用于声明它的类型 long 似乎不匹配。如果你想让DestinationAddress存储一个long的地址,需要声明为:

long* DestinationAddress;

如果您想使用整数类型而不是long* 来存储地址,则要使用的类型是intptr_t or uintptr_t。 .

uintptr_t Data32;
uintptr_t DestinationAddress;
uintptr_t* temp;

Data32 = 0x00112233;
DestinationAddress = 0x00280000;
temp = &DestinationAddress;
*temp = Data32;

更新,回应 OP 的评论

你需要使用:

long Data32;
uintptr_t DestinationAddress;
long* temp;

Data32 = 0x00112233;
DestinationAddress = 0x00280000;
temp = (long*)DestinationAddress;
*temp = Data32;

关于c - 如何使用指针处理存储在变量中的地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42094991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com