【问题标题】:How to dynamically allocate memory for a struct with an unknown size?如何为大小未知的结构动态分配内存?
【发布时间】:2016-08-28 00:13:42
【问题描述】:

所以我想为结构分配内存,但我是 C 新手,不知道如何分配它。 have 的结构由 2 个 int、1 个 char、1 个 bool(可以更改为 int)和 2 个 double 组成。我要读取或输入文件并将该文件中的信息存储到结构中,但文件中的信息量可能会发生变化。那么为它创造必要空间的最佳方式是什么?

【问题讨论】:

  • malloc 怎么样?
  • 别担心。编译器会知道大小(您可以使用 sizeof 运算符找出)。
  • @Kerrek 我该如何 malloc 呢?据我所知,它的 malloc(sizeof() 或类似 (int*)malloc(sizeof()))。我见过这些,但我不知道如何使用它们.
  • @MickSharpe 我正在为一堂课做这个,作业需要它。我该如何使用 sizeof 运算符呢?
  • stackoverflow.com/questions/8728377/…(抱歉 - 还不知道如何输入链接。)

标签: c struct malloc


【解决方案1】:

使用mallocsizeof

#include <stdlib.h>

...

struct your_struct *s = malloc(sizeof(*s));

【讨论】:

  • 这必须出现在函数内部,不能像您的答案显示的那样出现在文件范围内。
猜你喜欢
  • 2016-02-29
  • 2021-04-05
  • 2012-03-12
  • 2021-06-04
  • 1970-01-01
  • 1970-01-01
  • 2014-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多