动态分配数组
解决无法动态分配数组arr的问题:
- 在 C++ 中,不能直接使用动态大小的原生数组(例如 int arr[n]),因为数组的大小必须在编译时确定。如果你传入的 n 是运行时决定的,编译器无法确定数组的大小。因此,下面的代码会在标准 C++ 中产生错误:
int n; // 假设 n 是函数的参数
int arr[n]; // 错误!数组大小必须在编译时已知
- 如果 n 是运行时决定的,你需要动态分配内存。例如,使用 new 运算符来动态分配数组:
int n; // 假设 n 是函数的参数
int *arr = new int[n]; // 动态分配大小为 n 的数组
此时,arr 是一个指针,指向动态分配的数组。你还可以在分配时初始化所有元素为 0:
int *arr = new int[n](); // 动态分配并初始化为 0
记得在使用完动态数组后使用 delete[] 释放内存,以避免内存泄漏:
delete[] arr;
vector
以上是针对有些题目将传入的参数固定为arr,实际上如果可以,最好直接用vector
#include <vector>
int n; // 假设 n 是函数的参数
std::vector<int> arr(n, 0); // 创建大小为 n 的 vector,并初始化为 0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端