【问题标题】:How do I define a dynamic array in C [duplicate]如何在 C 中定义动态数组 [重复]
【发布时间】:2018-03-31 15:57:36
【问题描述】:

我真的不知道如何在 c 中创建一个动态数组。 这是一个简单的例子。如果我定义一个静态数组,则基本上设置了缓冲区溢出。那么如何创建一个可以在 for 循环中使用的动态数组呢? malloc 是个好主意吗?如果是,我如何在 for 循环中使用 malloc?

int my_array[] = {};
int i = 10;
for (i; i <= sizeof(my_array) / sizeof(my_array[0]); i++) {
   my_array[i] = i + 2;
}

【问题讨论】:

  • 这是未定义的行为,请使用malloc 或“可变长度数组”(如果您的编译器支持它们)
  • @UnholySheep VLA 不是“动态”...
  • 网络上有很好的资源。

标签: c arrays


【解决方案1】:

malloc 不仅是一个好主意,它还是在 C 中动态分配内存的首选方式。该函数定义为 here,还可以找到一个示例。请注意,一旦不再需要内存,应使用free 释放内存。

【讨论】:

  • 另外,在freeing 之后你不能访问内存。
猜你喜欢
  • 1970-01-01
  • 2014-04-12
  • 1970-01-01
  • 2018-06-04
  • 1970-01-01
  • 2017-03-08
  • 1970-01-01
  • 1970-01-01
  • 2020-11-28
相关资源
最近更新 更多