gpt4 book ai didi

c - 指向指针使用的指针给出了意想不到的结果

转载 作者:行者123 更新时间:2023-11-30 18:22:04 25 4
gpt4 key购买 nike

为什么第一个打印语句是在 main() 中,打印 11 ?

#include<stdio.h>
void foo(int ** p){
int j = 11;
*p = &j;
printf("%d ", **p); //Printing 11
}

int main(){
int i = 10;
int *p = &i;
foo(&p);
printf("%d ", *p); //Printing 11
printf("%d ", *p); //Printing Random value
return 0;
}

最佳答案

foo() 内,您将自动局部变量 j 的地址分配给 *pfoo() 执行完成后,j 不再存在,因此,在 main() 中进一步使用(取消引用)p 调用undefined behavior .

现在,UB 的输出未定义

关于c - 指向指针使用的指针给出了意想不到的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30854269/

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