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

Мусор в элементах массива при передаче в функцию - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Адронный коллайдер http://www.cyberforum.ru/cpp-beginners/thread1166297.html
Каким образом организовать обход массива? Для следующей задачи: Внутри адронного коллайдера образовалось N разновидностей новых частиц в количестве A1, … ,AN единиц каждая. Большая часть новых частиц, однако, успевает прореагировать между собой раньше, чем эти частицы сможет уловить детектор, поэтому физикам очень важно предсказать конечный итог реакции между частицами. Для простоты будем...
C++ Как передать значение вводимой переменной из формы в класс? Ребят, подскажите, как передать значение вводимой переменной из формы в класс? У меня есть массив кнопок, я нажимаю по кнопке, i=x, j=y, как передать х и у в класс? http://www.cyberforum.ru/cpp-beginners/thread1166283.html
Возведение в квадрат и ошибка "sqare: идентификатор не найден" C++
Компилятор пишет, что "sqare: идентификатор не найден". Подскажите как исправить! sqare должно возводить число в квадрат. #include "std_lib_facilities.h" int main() { setlocale(LC_ALL, "Russian");
Двусвязный список: вставка, удаление, просмотр C++
Может есть у кого-нибудь двусвязный список с вставкой, удалением, просмотром, доступу к текущему элементу, передвижением вперёд назад (в стиле с++)?
C++ Определить, какая буква ("С" или "Н") встречается в предложении реже http://www.cyberforum.ru/cpp-beginners/thread1166263.html
2) Составьте программу, определяющую, какая буква "С" или "Н" встречается в предложении реже.
C++ Определить, на какую букву начинается предпоследнее слово в предложении 1) Составьте программу, определяющую, на какую букву начинается предпоследнее слово в предложении. подробнее

Показать сообщение отдельно
Melg
418 / 154 / 62
Регистрация: 23.09.2013
Сообщений: 306
04.05.2014, 20:44     Мусор в элементах массива при передаче в функцию
Потому-что в той реализации вы делали следующее:

C++
1
2
3
4
5
6
7
8
9
10
11
int *start_mass = new int[n]; // Вот тут выделен массив под размер N элементов - он же ниже передается в форму
        for (int i = 0; i < n; i++)
        {
            if (mass[i] != ' ')
            {
                start_mass[i] = Convert::ToInt32(Convert::ToString(mass[i])); //Тут инициализируются значениями только 
                                                                                                     //элементы для которых выполнено условия
                                                                                                     //А другие элементы содержат мусор
                count_elements++;
            }
        }
Далее вы передаете массив внутрь другой функции - с измененым размером - в итоге получая скажем исходный массив размера 10 элементов, из которых заполнено значениями только 5 (скажем каждый второй). А в функции queue_actions вы обрабатываете 5 первых элементов ( из которых 1-ый и 3ий содержат не инициализированные значения).

Если бы в качестве индекса для start_mass использовали count_elements - такой проблемы не возникло бы.
 
Текущее время: 14:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru