gpt4 book ai didi

c - 不同类型指针之间的减法

转载 作者:太空狗 更新时间:2023-10-29 15:47:20 24 4
gpt4 key购买 nike

<分区>

我试图找出两个变量之间在内存中的距离。具体来说,我需要找到 char[] 数组和 int 之间的距离。

    char data[5];
int a = 0;

printf("%p\n%p\n", &data[5], &a);

long int distance = &a - &data[5];

printf("%ld\n", distance);

当我在没有最后两行的情况下运行我的程序时,我得到了两个变量的正确内存地址,如下所示:

   0x7fff5661aac7
0x7fff5661aacc

现在我明白了,如果我没记错的话,两者之间有 5 个字节的距离(0x7fff5661aac8、0x7fff5661aac9、0x7fff5661aaca、0x7fff5661aacb、0x7fff5661aacc)。

为什么我不能减去一个类型 (int *) 和一个类型 (char *) 的指针。两者都指的是内存地址。我应该怎么做才能计算两者之间的距离(以字节为单位)?我尝试转换两个指针之一,但它不起作用。

我得到:“错误:'char *' 和 'int *' 不是指向兼容类型的指针”。感谢大家会帮助我

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