你这么写的话,那个n还是一个变量,c语言首先需要编译才能执行,而编译的时候编译器就认为这个n是不确定的,所以他不知道要给你分配多大的存储空间,我建议你可以定义一个指针来做,下面是一个例子。main(){vectorintn;intx;while(cinx)n.push_back(x);//建议你看一看关于vector的操作,访问vect...
1)可以定义一个足够大的数组,保证够用就好。2)使用链表结构,用一个申请一个元素的空间 3)用malloc先申请一定的空间作为数组的空间,等到不够用的时候,再重新malloc一个更大的空间,将旧的那个空间里的数据拷贝过来,作为数组的新的空间,然后free掉旧的那个空间即可。
在C语言中,可以使用指针来定义未知长度的数组。具体步骤如下: 声明一个指向未知长度数组的指针。例如,int *arr;。 在程序运行时,动态分配内存来存储数组元素。可以使用malloc()函数来实现。例如,arr = (int *)malloc(n * sizeof(int));,其中n为数组的长度。 使用指针操作符*来访问数组元素。例如,arr[0] =...
C语言中没有明确的“动态数组”(也就是不确定大小的数组)这个概念,只能用动态内存分配来实现,我给你一个思路:创建数组——用动态分配分配一个指定大小的内存(数组)销毁数组——释放动态分配内存 访问元素——通过内存指针间接引用 增加元素——再分配一块新内存区域(大小为增加后的大小),把久区...
2.数组元素的总数未知,但大大小已知。例如,如果您不知道数组的总数,但确定它不会超过100,则可以为存储和调用定义一个包含100个元素的数组。 3.动态分配数组。通过malloc函数,可以动态分配数组,然后记录当前分配的数组元素个数,并使用数组。当数组空间不足时,可以使用realloc函数重新分配空间,扩展数组元素的个数。例如...
请教问题,如何定义一..大佬们,请问一下c语言如何定义一个未知长度的数组,有个题目,我想定义一个未知长度的int数组,然后用sizeof计算其中元素个数,但是只要写int a[],就报错了,指定长度的话,int a[100]
如果不知道长度就会报错,如:int a[];这样的写法肯定是会报错的,如果怕长度不够用,可以在声明数组时...
free int main(){ int i, n;int* p; // 声明为指针 scanf( "%d", &n );p = ( int* )malloc( sizeof(int) * n ); // 以字节为单位分配 for ( i = 0; i < n; ++i ) { p[i] = i+1;printf( "%d ", p[i] );} free( p ); // 用完记得释放 return 0;} ...
int a[] = {1,2,3,...}; 这个是可以编译的,因为编译器会根据你所赋予a数组的元素计算出成员数量 struct num { int a; int b; int c[]; };假设用num结构去定义变量:struct num val;那么val实际上的成员只有a和b可以调用,而c[],因为定义模版时没有赋予它固定的成员个数,实际...
2.数组元素的总数未知,但大大小已知。例如,如果您不知道数组的总数,但确定它不会超过100,则可以为存储和调用定义一个包含100个元素的数组。 3.动态分配数组。通过malloc函数,可以动态分配数组,然后记录当前分配的数组元素个数,并使用数组。当数组空间不足时,可以使用realloc函数重新分配空间,扩展数组元素的个数。例如...