gpt4 book ai didi

c - 在不使用 & 或 * 的情况下使两个指针相等?

转载 作者:太空狗 更新时间:2023-10-29 15:43:28 27 4
gpt4 key购买 nike

我试图理解这段代码的作用(以及它是否被允许):

int * A;
int * B;
A = (int *)malloc( size_t somenumber );
B = A;

// bunch of stuff using B, B++, etc.

我读过的所有内容总是显示使用引用运算符 (&) 或解引用运算符 (*) 将事物等同于指针。

这种等同有什么作用?

而且,当我最终free(A) 时,B 会怎样?

最佳答案

这不是使两个指针相等,而是指针赋值。一次

B = A;

被执行时,两个指针都指向相同的内存区域:访问 *B 与访问 *A 完全相同,B[i] 等同于 A[i],依此类推。

请注意,释放 A 会使 B 悬空,反之亦然。也就是说,调用之后

free(A);

访问 *B 成为未定义的行为。

关于c - 在不使用 & 或 * 的情况下使两个指针相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12975047/

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