【问题标题】:How to create a dynamic sized array in c?如何在c中创建一个动态大小的数组?
【发布时间】:2014-04-23 09:20:04
【问题描述】:

如何创建动态数组? 我尝试使用该代码:

#include <stdlib.h>
#include <stdio.h>
int main()
{
int size=0,*value,array[size];
printf("How many array elements do you need?");
scanf_s("%i",&size);
value = (int *)malloc(size*sizeof(int));
printf("Your array has now %i elements.Here are the contents:",size);
for(i=0;i<size;i++)
{
  printf("%i",array[i]);
}
return 0;
}

我怎么能意识到这一点?我的程序(Visual Studio 2013)出错了。

【问题讨论】:

  • 缩进您的代码并在大多数语句的末尾添加所需的';'。
  • 数组数组初始化为大小为0的数组,注意动态的是指针值指向的。可以像数组一样使用指针来查看动态数组的值,只是机会在printf array[i]到value[i]
  • 了解arrays in Cusing malloc
  • 顺便说一下,您将看到的值将是完全随机的,因为 C 不会将所有数组值都放在 0 中

标签: c arrays dynamic


【解决方案1】:
#include <stdlib.h>
#include <stdio.h>

int main(){
   int i, size, *value;
    printf("How many array elements do you need?");
    scanf_s("%i", &size);
    value = (int *)malloc(size*sizeof(int));
    printf("Your array has now %i elements.Here are the contents:\n", size);
    for(i=0;i<size;i++){
        printf("%i\n", value[i]);//uninitialize
    }
    return 0;
}

【讨论】:

  • 感谢您的回答。:) 它有效!但是代码中的 //uninitialize 是什么意思?
  • @user3563783 ;我想通过显示未设置的值是否有含义。,
  • 好的,但是如果我想声明第二个普通数组,我如何将此数组设置为与动态数组相同的大小(int normal[size]?)
  • @user3563783 VLA(Variable-length array : like int normal[size]) 不能在 MSVC 中使用。
猜你喜欢
  • 1970-01-01
  • 2014-05-23
  • 2012-11-27
  • 1970-01-01
  • 2023-04-09
  • 2018-02-26
  • 1970-01-01
  • 2012-03-18
  • 2010-09-20
相关资源
最近更新 更多