[英]Creating 'n' number of variables, where 'n' is an input from the user
我是 C 語言的初學者。 只是想知道是否有一種方法可以創建“n”個變量,其中“n”是用戶的輸入。 是否可以決定在運行時創建的變量數量。
是否可以決定在運行時創建的變量數量。
如果我們談論根據用戶輸入創建或多或少的變量,那將意味着如下:
int n;
int result = scanf("%d", &n);
// TODO: Check result value.
int var0, var1, var2, ... varn;
這是不可能的。 您要使用的每個變量都必須在編譯時在您的代碼中定義。
如果您以“多個值的空間”的方式考慮“變量的數量”,那么我們可以為您做點什么。
在 C99 中,引入了一個稱為“可變長度數組”(VLA)的特性。 (在 C11 中它是可選的)
此功能允許您定義具有非常量元素數量的局部數組變量:
int n;
int result = scanf("%d", &n);
// TODO: Check result value; check n for allowed range to fit into stack
int values[n];
當您離開定義它的 function 時,此陣列的 memory 將被釋放。
或者在所有 C 標准中,您可以使用指向動態分配的 memory 的指針:
int n;
int result = scanf("%d", &n);
// TODO: Check result value.
int *values = malloc(n * sizeof(*values));
// TODO: Check for NULL value.
您也可以在離開 function 后使用此 memory。 如果您不再需要它,您必須稍后釋放它。
在這兩個版本中,您都可以通過數組表示法訪問值: value[index]
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.