关于C语言指针

  在学习关于C语言指针的时候发现这样一个问题,代码如下:

  函数new_B的作用是新建一个结构体B的指针变量p并为它分配内存,然后在函数中建立一个结构体A的变量t並把这个变量的地址&t赋给B的成员n(n是结构体A的指针)。我们知道, t是一个局部变量存放在栈中,在函数new_B执行结束后t会被释放。而当我们返回主函数然后输出,可以得到正确的结果如果我们去掉分配内存这一行,也就是p = (struct B *)

  问题是就算分配了内存,new_B函数执行完以后t就会被釋放掉那么在主函数访问 p->n是,应该也会出错为什么在主函数中还可以访问呢? 

  请大牛给予指导解答!!!

}
  • 扫描二维码关注牛客网

  • 下载牛愙APP,随时随地刷题

刷真题、补算法、看面经、得内推

使用第三方账号直接登录使用吧:

扫一扫把题目装进口袋

  • 公司地址:北京市朝阳区丠苑路北美国际商务中心K2座一层-北京牛客科技有限公司
  • 联系方式: 投诉举报电话:(朝阳人力社保局)
}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信