想请教关于变量宣告的问题
用静态的方式宣告阵列,必须事先决定好array size
以便compiler决定要在这部份分配多少空间给该阵列
一般写法大概就像这样:
int a[100];
or
#define ARRAY_SIZE (100)
int a[ARRAY_SIZE];
如果是以传参数作为阵列大小的宣告的话,通常应使用动态阵列宣告,如:
void showA(int array_size)
{
int *ary_ptr;
ary_ptr = (int *)malloc(array_size * sizeof(int));
/* Do something */
......
......
free(ary_ptr);
}
不过如果直接用静态宣告法,实际上在测试时好像也可以正常运作,如:
void showB(int array_size)
{
int ary[array_size];
/* Do something */
......
......
}
想请问像showB function这样的写法,会不会有什么问题?
还烦请先进给予指点,感谢