[問題] function參數作靜態arrray size宣告
想請教關於變數宣告的問題
用靜態的方式宣告陣列,必須事先決定好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這樣的寫法,會不會有什麼問題?
還煩請先進給予指點,感謝
--
ˍˍ
很多人在即將失去的時候,不知他即將失去,最後他就真正失去 ▕天險▏
其實,一個不曾失去的人最可憐。因為,他永遠學不會什麼叫珍惜。▕刀藏▏
 ̄ ̄
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.71.154
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1453600428.A.AB9.html
→
01/24 09:58, , 1F
01/24 09:58, 1F
推
01/24 10:02, , 2F
01/24 10:02, 2F
→
01/24 10:03, , 3F
01/24 10:03, 3F
→
01/24 10:04, , 4F
01/24 10:04, 4F
→
01/24 10:05, , 5F
01/24 10:05, 5F
→
01/24 10:05, , 6F
01/24 10:05, 6F
→
01/24 11:07, , 7F
01/24 11:07, 7F
→
01/27 12:08, , 8F
01/27 12:08, 8F