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

Не получается глобально... - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нужна помощь с циклами http://www.cyberforum.ru/cpp-beginners/thread382839.html
Помогите, пожалуйста, нету никаких идей. Пользователь вводит число. Показать сколько в данном числе чисел и сумму этих чисел. Нужно решить с помощью любых циклов, без массивов и прочего.
C++ Исправить ошибки в коде Возникла проблема при написании программы. Выдаются ошибки которых нет на самом деле. помогите, пожалуста. код Parcer::Parcer() { } ошибка Error 3 error C2533: 'Parcer::{ctor}' : constructors... http://www.cyberforum.ru/cpp-beginners/thread382822.html
Помогите решить задачу по структурам в С++ C++
Вот задача: Дані відомості про 14 кубиків: довжина ребра в сантиметрах, його колір і матеріал (дерев'яний, металевий, пластмасовий). Знайти кількість дерев'яних кубиків з ребром 3 см. і кількість...
C++ Шифрование «методом бутерброда»
Секретное агентство «Super-Secret-no» решило для шифрования переписки своих сотрудников использовать «метод бутерброда». Сначала буквы слова нумеруются в таком порядке: первая буква получает номер 1,...
C++ Календарь http://www.cyberforum.ru/cpp-beginners/thread382804.html
В календаре древнего племени Яйам «счастливыми» считаются такие номера годов, в записи которых встречаются только цифры 0 или 5. Необходимо для заданного целого неотрицательного числа k определить...
C++ апроблемы с заполнением массива помогите! задача была с использованием функции: "Удвоение значений тех элементов матрицы, у которых сумма номеров строки и столбца четная.". вобщем не знаю как заполнить массив в данном случае: ... подробнее

Показать сообщение отдельно
Kastaneda
Jesus loves me
Эксперт С++
4688 / 2892 / 236
Регистрация: 12.12.2009
Сообщений: 7,353
Записей в блоге: 2
Завершенные тесты: 1
13.11.2011, 13:35
В общем тут сложно объяснить, но суть в том, что инициализация глобальных переменных должна быть в той же строке, что и объявление. Например:
C++
1
2
3
//global scope
int i;
i=5;
привет к такой же ошибки, как у тебя.
а так:
C++
1
2
//global scope 
int i = 5;
будет правильно.
Если в двух словах, то компилятор делает отдельную функцию для инициализации глобальных переменных. Сначала он видит строку
C++
1
const char* fileName[32][256];
и видит, что массиву не присвено ни каких значений, поэтому он создает код для заполнения массива нулями (глобальные переменные инициализируются нулями по умолчанию). Потом видит строку:
C++
1
fileName[32][0] = "data.bin";
и тут у него случается когнитивный диссонас, он думает :"какого хера, я же только что создал функцию для заполнения этого массива нулями, что тут делает эта строка?" И ругается на нее!

Добавлено через 6 минут
Вот статья не по теме, но там есть небольшое объяснение этого момента.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru