【问题标题】:How do you create an array of a certain size using malloc() in C? [closed]如何在 C 中使用 malloc() 创建一定大小的数组? [关闭]
【发布时间】:2013-10-15 04:55:30
【问题描述】:

我正在编写的程序的一部分需要使用 malloc 而不是常规的方式创建一个数组。我必须让用户输入一个数字,将该数字命名为 MAX,然后使用 malloc() 创建一个数组,其中数字为 2 到输入的数字。我将如何进行编码?

【问题讨论】:

  • 从一本好书开始。
  • 凌晨 1 点在朋友家做有点难......
  • 这就是我迷恋互联网的原因。
  • 你朋友的老师不应该在布置作业之前告诉你如何做这种事情吗?
  • google "malloc array" - 见第一击。 (研究技能为-1)

标签: c arrays dynamic malloc


【解决方案1】:

通过指定数组的大小(以字节为单位)并将返回值分配给适当类型的指针,您可以使用malloc() 创建一个“数组”。如果您希望这是一个大于一个字节的对象数组,您可以将对象的数量乘以对象的大小,这可以通过 sizeof 运算符获得。

例如,您可以创建一个包含 50 个 int 对象的“数组”,如下所示:

int *ar = malloc(50 * sizeof (int) );

【讨论】:

  • 谢谢!这就是我需要知道的一切。
  • 当我这样做时,我收到一条错误消息:输入 int *ar = malloc(50 * sizeof (int));
  • 如果您使用的是足够老的 C 编译器,例如 Microsoft Visual Studio,它将不支持混合的语句和声明。在函数开头放int *ar = NULL;,在需要分配的地方放ar = malloc( whatever );。当然,请确保将适当的值替换为“whatever”。
【解决方案2】:

你可以这样做:

T *dynamic_memory;
.......  //Get the desired array size from user input and store in 'array_max_size'
dynamic_memory=malloc((sizeof(T) * array_max_size);

T:数组的数据类型

然后您可以使用dynamic_memory 来实现您的目的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-05
    • 2014-12-26
    • 1970-01-01
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多