C中数组个数难道真的不能用变量?
看我这本书的时候,有很多数组题目都需要用到动态内存分配,就是数组先用一个变量整数,等终端输入该数字以后就做为该数组的个数,我都用过,好象都不能定义,恳请各位大虾给个解决方法.谢谢了!
----------------解决方案--------------------------------------------------------
动态数组需要用到申请堆中的空间来实现,使用函数calloc(),原形如下:
void *calloc(size_t num,size_t size ); //在堆中申请size*num个字节的空间用法如下:
#include <stdio.h>
#include <malloc.h>
int main( void )
{
int *buffer;
buffer = (int *)calloc( 40, sizeof( int ) ); //申请长为40的int型动态数组
if( buffer != NULL )
printf( "Allocated 40 integers\n" );
else
printf( "Can't allocate memory\n" );
buffer[0]=1; //现在你可以像使用数组一样来使用buffer
free( buffer ); //别忘了用完后要归还buffer指向的堆中的空间
}
----------------解决方案--------------------------------------------------------
谢谢!
----------------解决方案--------------------------------------------------------
int arrayLEN=0;
int *array=NULL;
printf("请输入整型数组的长度:");
scanf("%d",&arrayLEN);
getchar();
array=(int*)malloc(sizeof(int)*arrayLEN);
free(array);
----------------解决方案--------------------------------------------------------
c中的数组的大小不能动态定义
数组的大小不依赖与程序运行过程中变量的值!
----------------解决方案--------------------------------------------------------