在main()中定义全局变量

sja*_*rni 4 c++ global-variables

我想根据main()的输入定义全局数组(在其他函数中使用); (具体地说是数组大小).该EXTERN关键字没有帮助.

#include <iostream>
    using namespace std;

void gen_sieve_primes(void);

int main() {
    int MaxNum;
    cin >> MaxNum;
    int *primes = new int[MaxNum];
    delete[] primes;
    return 0;
}
//functions where variable MaxNum is used
Run Code Online (Sandbox Code Playgroud)

Ria*_*iaD 5

只需在全局范围内定义它

int MaxNum;
int main(){
    cin >> MaxNum;
}
Run Code Online (Sandbox Code Playgroud)


Cub*_*bic 2

您在 main 之外声明它:

int maxNum;
int main() {
...
}
Run Code Online (Sandbox Code Playgroud)

理想情况下,您根本不这样做。全局变量很少有用,而且几乎从不(或者更确切地说:从不)需要。