如楼上所言,用malloc函数即可. 如下: int *arr = new int[a];//a个整形元素 事实上,c99标准已经支持动态数组.你可以直接int arr[a];(其中a是运行时得到的) vc6里面不支持c99标准,所以不能这样用.许多主流编译器如gcc都已经支持该用法. 结果一 题目 C语言怎么用变量定义来数组元素个数?我用C语言编程时...
在C语言中,数组的大小必须是一个常量表达式,而不能使用变量来定义数组大小。这是因为数组在编译时就需要分配内存空间,而变量的值只能在运行时确定,所以无法使用变量来定义数组的大小。如果需要根据变量的值...
没有申请的空间系统是不允许读写的。那么如果一个数组大小是变量定义,则在程序运行前不能确定数组大小,也就无法申请,故不允许。所以,解决的办法便是通过malloc函数,即 int a[n]; 可改为 int* const a = (int*)malloc(sizeof(int)n); 这样a变量就完全可以当作一个数组直接使用了,包括a[1]之类的。因为“...
也只是说你可以用变量去定义数组,但是变长数组的大小在创建后就是不变得,而且变长数组必须的自动的存...
不可以的,定义数组不可以用变量的,如果非要随机定义长度的话,可以用malloc函数 struct student *stu ...
在C语言中,数组的元素可以是变量,也可以是常量。数组在声明时的大小必须是一个常量表达式,这意味着数组的大小在编译时必须是已知的。但是,一旦数组被创建,它的各个元素可以被赋值为变量或常量值。数组元素的值在程序运行时是可以改变的。例如:int array[10]; // 声明一个整数数组,大小为10 int...
如果定义一个变量 size = 5 * n, 那么能不能用arr[size]来定义数组呢? 答案是可以的。 但是有一点不同的地方,一般的数组定义如 #define N 1024, 定义数组时候是可以初始化的,如 int a[N] = {0}; 但是如果用 arr[size] = {0} 是不可以的,只能靠遍历来初始化数组,因为只有当运行时数组的长度size...
不能用变量定义数组长度。 应当使用malloc()为数组动态分配存储空间。 ---(以下原答案)--- 理论上不行,不过窝写了一段代码,倒是能编译通过。 #include <stdio.h> int main(){ int n; scanf("%d", &n); int a[n]; for(int i = 0; i < n; i++){ a[i] = i; } for (int i = 0;...
百度试题 结果1 题目C允许对数组的大小作动态定义,即可用变量定义数组的大小。 ( ) A. 正确 B. 错误 相关知识点: 试题来源: 解析 B 正确答案:B 解析:数组的大小可以用不加参数的方式动态的数组的大小。 知识模块:C语言反馈 收藏