用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、嘿嘿,我一点变长数组的核心我都还没有理解到
  请各位前辈不吝赐教!!*/

}

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

1、fgets()函数是文件操作函数,为什么也可以对数组用
》》》 此函数操作时将显示设备当做一个流文件操作,不是对数组用
2、fgets(buf,256,stdin);和sscanf(buf,"%d",&size);这两句是什么意思
》》》 用户在显示屏上输入一个数字
3、嘿嘿,我一点变长数组的核心我都还没有理解到
》》》这就是一个指针的动态分配内存的使用,与数组没有关系。只是可以考虑将指针当数组用,这样就可以改变所谓数组的大小。

理解什么是数组,如果只是需要这种没意义的功能
链表就是动长数组,功能更齐全