【问题标题】:dynamic array in c with "new" command [closed]带有“new”命令的c中的动态数组[关闭]
【发布时间】:2019-12-01 11:35:56
【问题描述】:

我们的老师告诉我们,我们可以使用以下代码在 C(不是 C++)中创建一个动态数组:

int main()
{
 int n;
 scanf("%d" , &n);
 float* x =new float[n];
 return 0;
}

【问题讨论】:

  • 你不能。可能的解决方案:给自己找一位新老师。或者一所新学校。
  • 请您的老师向您展示使用 C 编译器编译的效果如何。给你:ideone.com/Zs5dVg
  • 你的问题到底是什么?
  • 我曾经让一位大学讲师告诉全班 ASCII 代表 ASC 版本 2。我很快就放弃了这个主题。
  • 告诉你的老师将这三行添加到他的文件顶部:#ifdef __cplusplus / #error bad compiler / #endif

标签: c arrays memory


【解决方案1】:

要么你的老师不正确,要么你误解了——那不是有效的 C 代码。

从 C 的 1999 版本开始,您可以像这样创建一个可变长度数组

int n;
scanf( “%d”, &n );
float x[n];

或者您可以使用malloccallocrealloc 动态分配内存:

int n;
scanf( “%d”, &n);
float *x = malloc( n * sizeof *x );

但 C 中没有 new 运算符。

【讨论】:

    猜你喜欢
    • 2020-03-01
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-30
    相关资源
    最近更新 更多