传说中的航航哥 2022-04-06 21:18 采纳率: 66.7%
浏览 10
已结题

第十三行的t=&b有什么用,为什么去掉后运行就会崩溃,是因为t是一个空指针,必须要赋予它一个地址吗?

#include <stdio.h>

typedef struct {
int data;
} a;

void fun(a *t) {
t->data = t->data + 1;
}

int main() {
a *t, b;
t = &b;
t->data = 1;
fun(t);
printf("%d", t->data);
}

  • 写回答

1条回答 默认 最新

  • IT_阿水 2022-04-06 21:56
    关注

    是的,因为在t=&b之前,t只是一个空指针,没有合法的指向,有了t=&b之后,t就指向b的空间

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月10日
  • 已采纳回答 4月7日
  • 创建了问题 4月6日

悬赏问题

  • ¥15 LLM accuracy检测
  • ¥15 pycharm添加远程解释器报错
  • ¥15 如何让子窗口鼠标滚动独立,不要传递消息给主窗口
  • ¥15 如何能达到用ping0.cc检测成这样?如图
  • ¥15 关于#DMA固件#的问题,请各位专家解答!
  • ¥15 matlab生成的x1图不趋于稳定,之后的图像是稳定的水平线
  • ¥15 请问华为OD岗位的内部职业发展通道都有哪些,以及各个级别晋升的要求
  • ¥20 微信小程序 canvas 问题
  • ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式