4

我想根据来自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
4

3 回答 3

5

只需在全局范围内定义它

int MaxNum;
int main(){
    cin >> MaxNum;
}
于 2012-11-27T16:48:02.020 回答
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
于 2012-11-27T16:48:24.987 回答
2

您在 main 之外声明它:

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

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

于 2012-11-27T16:48:29.593 回答