gpt4 book ai didi

c - 想要截断地址以清晰起见无法按预期工作

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

为了清楚起见,想要截断地址。不寻找改进的代码,就是为什么十六进制代码减法似乎不能正常工作。

从“cname”和“arptr”中减去“零”的第一个结果:

address of 'cname' is 0x7fff5fbff720
and of 'arptr' is 0x7fff5fbff720

为了清楚起见,想要截断不需要的数字我减去 0x7fff5fbf0000 以为我会得到0x00000000f720,但是:

从“cname”和“arptr”中减去“trunker”的第二个结果:

address of 'cname' is 0xffff00014082f720
and of 'arptr' is 0xffff00014082f720
#include <stdio.h>
#define trunker 0x7fff5fbf0000
#define zero 0x000000000000

int main(void) {

char cname[3][3] = {'a','b','c','e','f','g','i','j','k'};
char (* arptr)[3];

arptr = cname;

printf("address of cname is %p\nand of arptr is %p\n",
cname-zero,arptr-zero); //replace zero with trunker
//to truncate first 8 digits

return 0;

}

在 OS X 上使用 Xcode

谢谢,2012 年新年快乐

最佳答案

指针运算以被指向的事物为单位执行,而不是以字节/字符为单位。

你可以试试这个:

printf("address of cname is %p\nand of arptr is     %p\n",
(char*)cname-zero, (char*)arptr-zero);

关于c - 想要截断地址以清晰起见无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8694181/

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