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

用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

    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码