我的主接受命令行參數(碰巧是所有的整數),然後我需要在它的堆棧上創建一個數組。接受整數主要參數,然後使用它們來聲明一個數組,問題與恆定?
int main(int ragc, char *argv[]) {
互聯網使它看起來像約定的char *,是有可能接受一個int *,而不是因爲我的命令行參數只打算是整數?
其次,我需要聲明使用2的參數如下:
char databuf[nbufs][bufsize]; // where nbufs * bufsize = 1500
但是編譯器在我吼說nbufs和BUFSIZE需要有一個恆定值。不幸的是,他們必須將我接受的命令作爲命令行參數接受,那麼它們將如何成爲常量值?
int main(int ragc, char *argv[]) {
int nbufs = atoi(argv[3]); //grabs the nbufs
int bufsize = atoi(argv[4]); //grabs the bufsize
char databuf[nbufs][bufsize]; //where nbufs * bufsize = 1500
爲什麼Linux中的g ++編譯器不在乎如果我給非常量數組維度? –
@MilanNovaković'g ++'支持C++中的可變長度數組作爲編譯器擴展。這不是技術上有效的C++,並且不一定會在其他編譯器上編譯。 – templatetypedef