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

Возвращаемый массив содержит мусор - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как вернуть массив? http://www.cyberforum.ru/cpp-beginners/thread594668.html
Как правильно вернуть локальный массив (вместе с размером) из одной функции в main-функцию и потом передать его в третью функцию? int* first(int &rArraySize) //Есть функция { rArraySize=;//задаём размер массива int* Array = new int ; //создаем массив return Array; //возвращаем указатель на массив }
C++ Прямоугольник Помогите написать программу, которая будет выводить на экран прямоугольник с каким-нибудь текстом; каждые 15 секунд в новом месте экрана. http://www.cyberforum.ru/cpp-beginners/thread594665.html
C++ Текст является десятичной записью числа, кратного 9
Добрый всем день. Помогите мне решить данное задание , я плохо разбираюсь в этом языке программирования ,т.к. мягко говоря ,наш преподаватель - не компетентен. 1.Текст является десятичной записью числа, кратного 9. Заранее благодарен!
C++ Access violation и размерность символьного массива
Всех приветствую! Только начинаю работать с консолькой, и вот уже возникли непонятки с символьными массивами. Конкатенирую 2 введенные строчки через разделитель " - ": #include <cstdio> #include <cstdlib> #include <iostream> using namespace std;
C++ Работа с русским языком в консольном приложении http://www.cyberforum.ru/cpp-beginners/thread594625.html
Как можно осуществить ввод-вывод текста на русском языке в консоли? Просто я в программе использовал уже тексты в файлах на русском языке, ввел их там, все как положено(использовал еще setlocale(LC_ALL, "RUS");) Но когда я пытаюсь ввести, например, название для поиска по введенным данным, на русском языке, то программа, когда я вывожу то, что ввел для проверки, выдает мне т.н. ерунду. Как...
C++ Нужно разобраться с программой В общем дана программа, мне нужно разобрать ее всю и полностью :) Нужно объяснить каждую строчку что за что отвечает и что делает, думаю для таких профи, как Вы это будет не трудно сделать, можете откомментировать каждую строчку? Заранее благодарен. Вот собственно код программы: #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> #define n 2 подробнее

Показать сообщение отдельно
Lordif
 Аватар для Lordif
21 / 21 / 1
Регистрация: 18.04.2010
Сообщений: 87
03.06.2012, 10:33     Возвращаемый массив содержит мусор
Так создавать массив нельзя:
C++
1
2
// создаем новый массив нужного размера
int arrPart[start-end+1];
Необходимо в таком случае динамически выделить память:
C++
1
int* arrPart = new int[start-end+1];
И вы создаете массив с отрицательным кол-вом ячеек, start - end + 1 < 0, т.к. end > start,
надо так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int* getArrayPart (int* arr, int start, int end) {
    // создаем новый массив нужного размера
    int* arrPart = new int[end - start + 1];
 
    // заполняем этот массив и выводим на экран его содержимое
    // (работает, как надо!)
    for (int i = start; i <= end; i++) {
        arrPart[i-start] = arr[i];
        cout << arrPart[i-start] << " ";
    }
    cout << endl;
 
    // возвращаем новый массив
    return arrPart;
}
 
Текущее время: 22:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru