当前位置: 代码迷 >> C语言 >> C中数组个数难道真的不能用变量?
  详细解决方案

C中数组个数难道真的不能用变量?

热度:437   发布时间:2007-05-28 01:35:57.0
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中的数组的大小不能动态定义
数组的大小不依赖与程序运行过程中变量的值!
----------------解决方案--------------------------------------------------------
  相关解决方案