【问题标题】:how to make an array of variable size in c++ in tubo c++ [closed]如何在 turbo c++ 中用 c++ 创建一个可变大小的数组 [关闭]
【发布时间】:2019-08-21 10:07:25
【问题描述】:

我怎样才能写一个可变大小的数组...例如

int n;
n=10;
int arr[n];

现在,这不会在我的编译器 (turbo c++) 上编译。谁能帮助我并告诉我如何创建一个可变大小的数组? 我的编译器给出了无法将 int 转换为 int* 的错误(即,它无法将 x 转换为数组 [x])

【问题讨论】:

  • 编写一个模板类,可以按需新建/删除/重新分配...

标签: c++ turbo-c++


【解决方案1】:

是的,您不能在 C++ 中创建 VLA(尽管一些工具链通过其 C 功能将其作为扩展支持;不是您的)。

而且,由于your toolchain is too old to have vectors,你被new[]delete[] 困住了。

尝试鼓励您的学校从 1980 年代开始。

【讨论】:

    【解决方案2】:

    您试图在这里声明一个大小为 10 的固定大小的数组。但是,大小需要是一个编译常量。所以你需要这样做:

    const int n = 10;
    int arr[n];
    

    但是如果只知道运行时的大小,就需要动态分配数组。为此,您可以这样做:

    int *arr = new int[n];
    

    您必须记住使用 delete [] arr 释放数组。

    最好使用 std::vector,它将为您处理内存分配和释放。

    【讨论】:

    • Turbo-c++ 没有std::vector 实现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-07
    • 2021-01-20
    相关资源
    最近更新 更多