动态分配数组

解决无法动态分配数组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
posted @   W-Vicky11  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示