У меня есть что-то вроде этого:глобальный статический массив в C++
static int n = 0; // global static int
int *arr = new int[n]; // global int*
int randToArray(int arr[], int min, int max) {
srand(time(NULL));
for(int i = 0; i <= n; i++) {
arr[i] = (rand() % max + min);
}
}
void printArray() {
if(n) {
for(int i = 0; i < n; i++)
cout << arr[i] << endl;
} else
cout << "The array hasn't been drawed yet.";
}
А потом в главной функции У меня есть меню с переключателем и опциями для получения случайных чисел и печати массива:
switch(option) {
case 1:
cout << "Set the size of the array: ";
cin >> n;
randToArray(arr, 1, 99);
break;
case 2:
printArray();
wait();
break;
}
Мне нужен мой массив, который будет доступен по всему миру для использования в нескольких других функциях.
Все работает, кроме одного: когда я хочу напечатать массив, я получаю работоспособность только 8 первых элементов. Затем терминал показывает некоторые очень большие числа.
** n ** - ноль? Это будет работать неправильно. Кроме того, независимо от размера n, вы хотите, чтобы ваш цикл заканчивался на 'i
Где ... вы видите глобальный статический массив? – Deduplicator