㈠ c语言:数组长度不够大,怎么办
如果是局部数组,可能是堆栈溢出,如果是全局数组,可能是编译器限制。
你用malloc吧,申请到25万的内存,赋给一个指针就可以了
㈡ C语言中普通数组在定义的时候不给出数组的具体长度,那么计算机是在运行期间为其分配长度的吗
变长数组:数组长度为变量,在编译期间不能确定数组长度,要等到程序运行后,变量赋值后(数组定义语句不要写在变量赋值之前!),才能给数组分配内存。
变长数组本质还是静态数组(定义前大小可变,但定义后不能改变大小)。
要定义动态数组需要用malloc函数来申请内存。
㈢ C语言:数组长度不够大,怎么办
定义为全局数组就可以解决这个问题
即把数组定义 int list[250000]放到int main前面
㈣ c语言中如果数组中的元素超出了所定义的数组长度,即形如: a[3]={1,2,3,4} 会怎样啊
vc中会出错的,这样是不允许的。 对于不确定长度的数字数组,你可以先定义一个常量,如 define N 5 然后在程序需要的情况下临时修改它然后用这个N常量来代表数组元素的个数利用for语句和scanf语句逐个输入数组元素,结束条件写if(i<=N)break; 输出时,数字数组用for 和printf就可以,结束条件为if(i<=N) 如果是字符数组,不用定义常量了,然后定义一个足够大的字符数组用gets(a)输入,用printf("%s",a)加循环语句输出,遇到'\0'自动终止
㈤ C语言 关于数组长度问题
6.选D
首先你要理解二维数组的真正含义,它的第一维就是一组数据的起始地址,第二维就是某组数据中的某个值.其次,你要知道a[][4]所表达的意思,是指二维数组a的每一维都是由4个元素组成的一维数组.而编译器可以根据你赋给a的初值个数计算它的第一维长度(元素总个数/4,如果不能整除,则长度加1,此时还应该有几个没有赋初值的数组元素).而a[3][]的意思从表面上看可以成立,但问题是编译器不能直接识别其第二维的确切长度(你可以考虑,如果总的初值个数为2时,可以认为a的第二维长度为1,也可以是2,.......),这样就会产生错误.所以,可以a[][4]={*,*,*……}这样定义,而不能定义a[3][]={*,*,*……}。
㈥ C语言定义数组但是数组长度不确定怎么处理
假设数组存的是int型 那么 你先申请10个元素 int* a = (int*)malloc(sizeof(int)*10); 如果又来了个元素,那么你就可以 a=(int *)realloc(a,11*sizeof(int)); 求元素个数int i,n=1; for(i = 0;(a+i)!=NULL;i++) { ; } n=i+1;//n就是元素个数
㈦ c语言中数组长度问题
首先你要明白 一个整形数据或者字符型数据占多少个字节 跟你的系统和编译器都有关
VC++6.0 一个int形占用四个字节 一个char形占用1个字节然后你的两个数组都包含7个元素
然而第二个数组的赋值很诡异 字符数组接收一些非字符数据 还真没试过怎么样
字符数组看见一个\0就结束了
㈧ 在C语言中,如果给数组中的全部元素赋值,则在定义数组时,可以不给出数组长度。 对不对
这么说把.字符数组只能初始花时全部赋直,在程序中只能用下标来逐个赋直,在初始化时如果全部指定了初直就可以省略数组长度
㈨ C语言中如果数组长度问题
可以定义一个指针变量,比如整型指针int *a。然后使用malloc函数来为它分配一块内存,malloc函数的参数是要分配的内存的字节数,比如malloc(100)。可以用sizeof来计算数据类型所占的字节数,比如sizeof(int)可以得到整型变量所占的字节数,然后乘以数组的长度就可以得到整个数组所占的字节数。对于使用malloc函数分配的内存,使用完后要用free函数来释放它。使用malloc函数要包含stdlib.h头文件。下面的程序是个具体例子,它的功能是计算输入的n个整数的平均值。
#include <stdio.h>
#include <stdlib.h>
float ave(int *a, int n)
{
int *p = a;
float s = 0;
while(p < a + n)
s += *p++;
return s / n;
}
int main()
{
int i, n, *a;
printf("输入整数个数:");
scanf("%d", &n);
a = malloc(sizeof(int) * n); /*为指针变量a分配内存,然后a就可以象数组那样使用了*/
printf("输入%d个整数:\n", n);
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
printf("平均值是%f\n", ave(a, n));
free(a);
return 0;
}
㈩ c语言中定义一个数组可以不写数组的长度吗
不可以,如果不能确定长度,请用STL库里的LIST,MAP,SET等数据类
或者开的数组开的大一些,保证你不会越界,多余的部分不适用就好
在定义的数组的时候,可以通过变量定义长度如:
scanf("%d", arrayLen);
int[] data = new int[arrayLen];