数组成员搞乱了结构中的另一个值[关闭]

问题描述 投票:0回答:0
typedef struct _foo {
  int a[20];
  int b;
  int c;
} foo;

例如:

a
的所有字段都为 5,然后我开始在
a
中的某些字段中用随机值对 5 进行抽取,其中一些字段以负整数结尾。 问题来了:
b
是 30,当我从来没有写过任何调用
b
的时候,这个值也开始被减去,只有当我编辑
a
的最后一个或第一个字段时才会发生(在结构的末尾或开头声明
a
似乎与行为有关,无论是编辑最后一个还是第一个成员)

我已经这样分配了

foo

foo *foo_new() {
    foo *f = malloc(sizeof(foo));
    return f;
}

我不想

b
被搞砸了,似乎是一个记忆问题,我不知道我做错了什么

c pointers struct malloc
© www.soinside.com 2019 - 2024. All rights reserved.