【C/C++】变量做数组长度
在c++中时不支持变量作为数组长度参数的,如 int n=10;byte bs[n]; 这样写会提示编译错误”表达式必须含有常量值“。
虽然用变量声明数组大小会报编译错误,但是可以通过指针来动态申请空间实现动数组长度的变量赋值,写法如下:
int length = 10;
int * varArray;
varArray = new int[length];
这样varArray就可以当做数组来用了,这个数组的长度可以在程序运行时由计算得来。如果是普通的数组如int is[10] 编译时必须能确定数组长度,不然会报编译错误,这样灵活性受限比较大。我想这个就是new的存在原因之一吧,在栈中分配的内存,大小都是编译时就确定好的,如果想在运行时来动态计算使用内存的大小的话,就要用new这样的动态分配函数,来达到更高的灵活性。
可以自己声明一个结构体,来代表这个指针实现的数组,这样可读性会高点,用起来也方便点。
注意:c++ 用new分配空间以后,不用的时候要记得delete释放内存,不然会有内存泄露问题。
转自:http://www.cnblogs.com/wangjixianyun/archive/2012/12/11/2812468.html
【C/C++】变量做数组长度相关推荐
- 【C++ 深入浅出】C++可以使用变量作为数组长度吗
首先明确一点:C++是不可以使用变量作为数组长度的 那为什么有些地方的C++用了变量做数组长度,没有报错呢? 那是因为这是C99标准的一部分,叫做 变长数组 即 变量长度数组,这个特性是g++编译器的 ...
- android js变量定义数组长度,js 声明数组和向数组中添加对象变量的简单实例
数组有四种定义的方式 使用构造函数: var a = new Array(); var b = new Array(10); var c = new Array("first", ...
- c语言变量作为数组长度,为什么在C中不允许将数组的大小作为常量变量但在C中允许?...
在C const中,并不意味着"常量"(即,在编译时可评估).它只是意味着只读. 例如,在一个函数中,这个: const int r = rand(); const time_t ...
- 为什么栈的数组长度必须是一个常量?而堆的数组长度可以是变量。为什么栈的大小有限制?
为什么栈的数组长度必须是一个常量?而堆的数组长度可以是变量 栈区数组长度使用变量会报错. 其原因就在于栈是编译器管理的,在程序运行前就已经分配好了空间的大小.而使用变量,编译器无法知道该分配多大的内存 ...
- 第六章 C语言数组_C语言变长数组:使用变量指明数组的长度
在<C语言的三套标准:C89.C99和C11>一节中我们讲到,目前经常使用的C语言有三个版本,分别是 C89.C99 和 C11.C89(也称 ANSI C)是较早的版本,也是最经典的版本 ...
- Golang基础(变量[普通变量、数组、切片、map、list、ring]声明及赋值)
Go语言和其他语言一样都有基本存储容器.可以存储一个或多个值在程序中,方便程序中多次使用容器中内容,这个容器称为:变量 Go语言虽然是静态类型语言,但是支持动态类型语言语法,因为Go语言希望程序员少声 ...
- 【Groovy】Groovy 方法调用 ( 字符串切割 | 使用 Java 语法切割字符串 | 使用 Groovy 语法切割字符串直接为变量赋值 | 数组赋值给变量 变量个数小于等于数组长度 )
文章目录 一.字符串切割 1.使用 Java 语法切割字符串 2.使用 Groovy 语法切割字符串直接为变量赋值 3.数组赋值给变量 变量个数小于等于数组长度 二.完整代码示例 一.字符串切割 在 ...
- php 获取数组变量个数组的长度,php数组长度的获取方法(三个实例)
本节内容: php数组长度的获取方法 PHP中有两个内建的函数:count() 和sizeof(),可以得到数组的长度. 例1: 复制代码 代码示例: $colorList = array(" ...
- C语言中,当计算字符数组长度时,用sizeof 和strlen 的原理及两者的区别
字符数组的长度计算:必须以终止符'/0'作为边界,但对字符数组赋值时,有两种方式: 1: 定义时用字符初始化 (1)char chs[7] = {'a', 'c', '0', 'z', '3','d' ...
最新文章
- 从零开始在ubuntu上安装和使用k8s集群及报错解决
- wxWidgets:wxBrush类用法
- 绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?
- Thymeleaf select 使用 和多select 级联选择
- 【BZOJ2251】[2010Beijing Wc]外星联络 后缀数组
- 躺枪实惨!与新冠病毒“重名”,这款墨西哥国民啤酒宣布暂停生产...
- SqlServer2008镜像证书过期处理
- 中英文组织机构名过滤
- php面试题之一——HTML+CSS(基础部分)
- 处理整个磁盘镜像文件的单个分区
- IDEA 打包、Spring Boot Maven plugin 打包可执行 Jar 程序
- LoadRunner脚本录制
- Windows Server 2008 R2更新永恒之蓝 补丁包方法
- spring 动态代理_Spring中的两种动态代理
- ThinkPad SL400 使用经验小记
- 《查拉图斯特拉如是说》读书笔记
- 二手苹果8多少钱_苹果期货一手多少钱
- html5 运动轨迹绘画,冷知识|简单几步教你用跑步轨迹绘画,用跑画刷爆你的朋友圈!...
- Python标准库time
- 探针一号的SQL注入学习笔记