You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++代码int [] a = new int[size];编译报错,求合法写法调整

C++动态数组创建的语法修正

你写的int [] a = new int[10];是Java风格的数组声明,C不支持这种语法,以下是两种符合C规范且贴近原伪代码的修正方案:

方案1:使用指针+动态内存分配(最贴近原写法逻辑)

这是直接对应伪代码中“动态创建数组”的C++写法:

#include <iostream>
using namespace std;

int main()
{
    int* a = new int[10]; // 将[]移至变量名后,声明为int类型指针
    cout << a[0];
    delete[] a; // 必须手动释放动态分配的内存,避免内存泄漏
    return 0;
}
  • 说明:C++中new[]返回的是数组首元素的指针,所以变量需声明为int*;动态分配的内存不会自动回收,必须用delete[]释放(注意是delete[]而非delete,对应数组的释放逻辑)。

方案2:使用std::vector(现代C++推荐,更安全)

如果不想手动管理内存,推荐用C++标准库的std::vector,它本质是动态数组容器,用法和普通数组一致,还会自动处理内存回收:

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    vector<int> a(10); // 创建大小为10的int动态数组
    cout << a[0];
    // 无需手动释放内存,vector会在生命周期结束时自动回收
    return 0;
}

内容的提问来源于stack exchange,提问作者Jay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 11:25:57