Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
UEF
0 / 0 / 0
Регистрация: 30.03.2010
Сообщений: 22
#1

Глобальная переменная - C++

16.04.2010, 23:24. Просмотров 519. Ответов 8
Метки нет (Все метки)

Никогда с таким не сталкивался... В общем:
Надо обьявить глобальный масив в одной функции, но чтобы его видели все другие функции. Вне функции обьявить нельзя. А что делать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2010, 23:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Глобальная переменная (C++):

Глобальная переменная определена в хидере. Компилятор ругается на то, что переменная переопределена несколько раз - C++
Исходники: /* main.cpp */ #include "hider.h" int main(void) { return 0; } /* foo.cpp */

Глобальная переменная - C++
Надо сделать глобальную переменную которая будет видна во всех файлах .cpp Непонятно где ее нужно инициализировать и присваивать...

Глобальная переменная - C++
Есть двумерный символьный массив ClusterBuf объявленный глобально. В него,в ходе выполнения программы, будет считываться содержимое...

Глобальная переменная - C++
#include "stdafx.h" #include "locale" #include "iostream" #include "conio.h" using namespace::std; int count = -1; void swap();...

Глобальная переменная в OpenCL - C++
Всем привет! Кто может подсказать как правильно создать глобальную переменную в OpenCL? unsigned char *globalVariable; __kernel...

Глобальная переменная из другой dll - C++
Имеется сторонняя dll без исходников. Мне нужно в своей программе получить значение глобальной переменной из той длл. Через IDA нашел,...

8
Oleg462
31 / 30 / 3
Регистрация: 18.01.2010
Сообщений: 123
16.04.2010, 23:39 #2
попробуй
C++
1
extern int a
0
UEF
0 / 0 / 0
Регистрация: 30.03.2010
Сообщений: 22
17.04.2010, 00:59  [ТС] #3
Да, но... Разве это глобальная? Я пробовал с этим чтото сделать, но его то инициализировать гдето нельзя, то еще чтото...
Все учебники блин перелестал, ниче не нащел(((((
0
delfamur
42 / 24 / 0
Регистрация: 16.03.2010
Сообщений: 199
17.04.2010, 09:27 #4
возможно надо тип возвращаемого значения для функции сделать аналогичным типу массива. а в других функциях вызывать ту, в которой массив описан. т.е., реализовать через подпрограмму
0
UEF
0 / 0 / 0
Регистрация: 30.03.2010
Сообщений: 22
17.04.2010, 09:38  [ТС] #5
Вобщем вот... Компиллер материться что он не знает никаких б (((
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <stdlib.h>
void q(){
     extern int b;
     b = 1;}
void w (){
     printf ("%i\n", b);}   //Не знаю я никаких b!
int main (){
q();
w();
system ("PAUSE");
return 0;}
0
delfamur
42 / 24 / 0
Регистрация: 16.03.2010
Сообщений: 199
17.04.2010, 09:54 #6
а если повыше функции объявить extrern int b; ??? а в самой функции только b=1;
0
Nick Alte
Эксперт С++
1639 / 1011 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
17.04.2010, 10:46 #7
Зачем советовать, если не знаешь? Никакой extern тут не поможет, он для другого служит. Переменные, которые объявляются внутри функции, только внутри неё и доступны. Более того, они создаются только при заходе в функцию, а при выходе уничтожаются. Единственный способ удаления гландов через задний проход - объявить массив статическим и заставить функцию возвращать его адрес:
C
1
2
3
4
5
6
7
8
9
10
int* GlobalArray()
{
    static int array[100];
    return array;
}
 
void OtherFunction()
{
    GlobalArray()[5] = 0;
}
1
UEF
0 / 0 / 0
Регистрация: 30.03.2010
Сообщений: 22
17.04.2010, 14:32  [ТС] #8
Не лутчий способ... Но спасибо)
Просто я мгру пишу, и хочу чтоб пользователь сам выбирал кол-во противников, и я хотел в функции диалога создать масив структур... Гг=)
0
CyBOSSeR
Эксперт С++
2303 / 1673 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
17.04.2010, 14:37 #9
UEF, так попробуй:
C++
1
2
3
// array.cpp
int  g_size  = 0;
int* g_array = NULL;
C++
1
2
3
// array.h
extern int  g_size;
extern int* g_array;
C++
1
2
3
4
5
6
7
8
// main.cpp
#include "array.h"
 
int main() {
  g_size  = 10;
  g_array = new int[g_size];
  // и т.д.
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2010, 14:37
Привет! Вот еще темы с ответами:

Глобальная переменная не читается в новом потоке - C++
подскажите пожалуйста, у меня есть помимо главного еще 2 потока и есть глобально объявленный массив, заполняю я его в первом потоке, там же...

Динамический массив как глобальная переменная - C++
Доброго времени суток, даже с google никак не смогу разобраться со следующей задачей: Хочу объявить матрицу(matrix допустим) глобальной...

Не определяется глобальная переменная внутри функции - C++
Доброго времени суток! Передо мной стоит задача: Задано множество точек М в трехмерном пространстве. Найти такую из них, что шар...

Глобальная переменная(не пойму как точно сделать) - C++
Привет.. Делаю менюшку... Ну как в .... Блокноте &quot;Файл, Правка, Справка&quot;. Меню выпадающее, тоесть нажимаем на файл - там открыть,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
17.04.2010, 14:37
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru