C语言 2d 结构数组:段错误



我从一个简单的想法开始。

我有一个结构,里面有我需要修改的东西

typedef struct {
    int stuff;
    int things;
    unsigned long long store;
 } line;

我需要制作这些结构的 2d 数组,依赖于已经读入并初始化的另外两个数字。 然而,当我尝试只是创造

line book[X][Y];

我到处都是段错误。

我知道我需要使用 malloc,但无论我尝试什么,我似乎都无法做到这一点!

如何实现我的目标?我真的只是需要帮助理解malloc,这是一个如此陌生的概念。 如果有人能帮助我,那就太好了。

一种方法是使用双指针到行,因为使用一个指针可以分配单个行"数组",使用双指针可以分配行"数组"的"数组"。

如果您有任何疑问,请参阅此处。

因此,您可以将"数组"的内存分配给指向行的指针,例如。

line **book = NULL;
book = malloc(sizeof(line *) * X);
有了这个,你将有一个指向行的指针的"数组",

然后你必须通过书的每个元素迭代,使每个指针指向另一个"数组",为此,我们对书的每个元素使用 malloc。

for (i = 0; i < X; i++)
    book[i] = malloc(sizeof(line) * Y);

另外,当您完成指针时,不要忘记释放指针。

相关内容

  • 没有找到相关文章

最新更新