【问题标题】:How to malloc array of structs without knowing size如何在不知道大小的情况下 malloc 结构数组
【发布时间】:2016-04-21 17:30:21
【问题描述】:

我有一个单词结构:

typedef struct {
   char *word;
   unsigned long occurrences;
} Word;

我想 malloc 一个数组,但我不知道大小会有多大。有没有办法在事先不知道数组大小的情况下 malloc 结构数组?

谢谢。

【问题讨论】:

  • 嘿?如果不知道大小,分配内存有什么意义?
  • 请说明您的具体问题或添加其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。请参阅How to Ask 页面以获得澄清此问题的帮助。

标签: c struct malloc


【解决方案1】:

你可以用malloc()分配内存,然后用realloc()改变大小

typedef struct {
 char *word;
 unsigned long occurrences;
} Word;

int main()
{
  Word *arr = malloc(sizeof(Word) * n);
  // do smth
  // need more
  arr = realloc(arr, sizeof(Word) * more);

  return 0;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    • 2011-12-27
    • 2021-07-19
    • 2015-08-14
    相关资源
    最近更新 更多