programmer_devotion 2015-02-07 11:51 采纳率: 25%
浏览 2962

用c语言实现可变长数组

/*可变长数组的实现*/
#include
#include

int main(void)
{
char buf[256];
int size;
int *v;
int i;

printf("input array size>");
fgets(buf,256,stdin);
sscanf(buf,"%d",&size);

v=(int *)malloc(sizeof(int)*size);

for(i=0;i<size;i++)
    v[i]=i;
for(i=0;i<size;i++)
    printf("v[%d]..%d\n",i,v[i]);
return 0;
/*各位前辈你们好:
       1、fgets()函数是文件操作函数,为什么也可以对数组用?
       2、fgets(buf,256,stdin);和sscanf(buf,"%d",&size);这两句是什么意思
        3、嘿嘿,我一点变长数组的核心我都还没有理解到
  请各位前辈不吝赐教!!*/

}

  • 写回答

3条回答 默认 最新

  • devmiao 2015-02-07 13:30
    关注

    这些代码算不上什么变长数组,仅仅是让你输入一个数组大小,然后动态分配内存(malloc)
    fgets从控制台stdin获取输入,装入缓冲区
    sscanf则是从输入中获取一个整数,放入size

    评论

报告相同问题?