gpt4 book ai didi

c - 通过指针初始化结构体

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

假设我们有

struct me  {
int b;
};

void main() {
struct me *m1;
m1->b=3;
}

我的问题是,因为 m1 是 me 类型的指针,并且当前是不持有 me 类型变量的任何地址那么我们如何访问 me 的成员 b
通过一个不指向任何 me 类型变量的指针,如果可以的话,那么 me 类型的哪个变量正在访问 a?

最佳答案

要么是

struct me m1;
m1.b = 3;

struct me *m1 = malloc(sizeof(struct me));
m1->b = 3;

当你在C中处理指针时,通常需要做3件事:

  • 创建指针
  • 确保内存分配在指针应指向的位置
  • 使指针指向该内存

您的解决方案只完成了其中的第一个。

你的 printf 起作用的原因是实际的作业和阅读仍然有效。您在进程中覆盖了一些随机内存,这一次没有产生任何灾难性的结果。但这纯粹是“运气”。您也可能会出现段错误。

关于c - 通过指针初始化结构体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21951750/

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