在main()中定义全局变量

时间:2012-11-27 16:46:03

标签: 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

3 个答案:

答案 0 :(得分:5)

只需在全局范围内定义

int MaxNum;
int main(){
    cin >> MaxNum;
}

答案 1 :(得分:2)

在主函数括号内声明数组。

#include <iostream>
using namespace std;
void gen_sieve_primes(void);

(Declare the variables here!)

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

答案 2 :(得分:2)

你在main之外声明它:

int maxNum;
int main() {
...
}

理想情况下,你根本不这样做。 Globals很少有用,而且几乎不需要(或者更确切地说:永远不需要)。