• c++中的变量做数组长度


    在c++中时不支持变量作为数组长度参数的,如 int n=10;byte bs[n];   这样写会提示编译错误”表达式必须含有常量值“。

    虽然用变量声明数组大小会报编译错误,但是可以通过指针来动态申请空间实现动数组长度的变量赋值,写法如下:

    1 int length = 10;
    2 int * varArray;
    3 varArray = new int[length];

    这样varArray就可以当做数组来用了,这个数组的长度可以在程序运行时由计算得来。如果是普通的数组如int is[10] 编译时必须能确定数组长度,不然会报编译错误,这样灵活性受限比较大。我想这个就是new的存在原因之一吧,在栈中分配的内存,大小都是编译时就确定好的,如果想在运行时来动态计算使用内存的大小的话,就要用new这样的动态分配函数,来达到更高的灵活性。

    可以自己声明一个结构体,来代表这个指针实现的数组,这样可读性会高点,用起来也方便点。

    注意:c++ 用new分配空间以后,不用的时候要记得delete释放内存,不然会有内存泄露问题。

  • 相关阅读:
    第五次作业之例行报告
    欢迎来怼—第三次Scrum会议
    例行报告
    探路者 Alpha阶段中间产物
    第六次作业—例行报告
    第五次作业—例行报告
    第四次作业—单元测试
    第四次作业—例行报告
    第四次作业—结对编程 四则运算
    第四次作业—1.代码规范
  • 原文地址:https://www.cnblogs.com/wangjixianyun/p/2812468.html
Copyright © 2020-2023  润新知