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

Строки - засорение памяти - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разработать ППП «Определение собственных значений и собственных векторов матрицы» http://www.cyberforum.ru/cpp-beginners/thread589197.html
Разработать ППП «Определение собственных значений и собственных векторов матрицы» следующими способами: 1) методом Крылова; 2) методом Леверье-Фадеева; 3) методом Данилевского; 4) методом итераций.
C++ Структуру с именем ZNAK Необходимо сделать следующее: Разработать структуру с именем ZNAK, содержащую поля: • Фамилия, имя; • Знак Зодиака; • Дата рождения (массив их трёх чисел для хранения даты, месяца и го- да). Написать программу, выполняющую следующие действия: • Ввод с консоли данных в массив структур ZNAK; • Вывод на консоль информации о людях, родившихся в месяц, значе- http://www.cyberforum.ru/cpp-beginners/thread589183.html
дан файл с текстом C++
• в качестве библиотеки ввода-вывода необходимо использовать потоковую библиотеку ввода-вывода «iostream»; пространство имен std
В Одномерном массиве состоящем из n элементов C++
В одномерном массиве ,состоящем из n элементов , вычислить сумму модулей его элементов после первого нулевого элемента.
C++ Вывести таблицу степеней двойки http://www.cyberforum.ru/cpp-beginners/thread589158.html
Здравствуйте, нужна помощь в составлении программы, которая выводит таблицу степеней двойки (от нулевой до десятой). Ниже представлен рекомендуемый вид экрана во время работы программы: 0 1 1 2 2 4 3 8 4 16 5 32 6 64 7 128
C++ Разработать структуру с именем POINT Разработать структуру с именем POINT, содержащую поля: 1) Горизонтальная координата точки на плоскости. 2) Вертикальная координата точки на плоскости. Написать программу, выполняющую следующие действия: 1) Ввод с консоли координат вершин ломанной линии в массив структуры POINT. 2)Вычислить и вывести на консоль длину ломаной линии. подробнее

Показать сообщение отдельно
33parrots
3 / 3 / 0
Регистрация: 25.05.2012
Сообщений: 23
28.05.2012, 18:05  [ТС]     Строки - засорение памяти
Если после возврата из функции, но перед выводом результата вызвать какую-нибудь функцию с большим количеством параметров, то наверняка данные испортятся.
Ага, тогда ыероятноя могу так сделать

C++
1
2
3
4
5
6
char* Function3()
{
    char str1[10]="abcd";
    //производим без стеснений всякие действия со строкой str1
    return str1;
}
и вызов функции делать следующим образом
C++
1
2
3
char string[100];
char* TempYkazatel = Function3();
strcpy(string, TempYkazatel);
Функция создала/поректировала строку, вернула на неё указатель, а потом из области памяти, которая помечена свободной, но всё ещё содержит данные переписала эти данные в предварительно созданную для этого дела переменную. Или так не делают? На деле всё работает, по крайней мере пока ))

Хотя
Создавать массив в вызывающей функции (статически или динамически) и передавать указатель на него в функцию как параметр. Внутри функции опять-таки потребуется копирование..
делает то же самое, но работает быстрее, ведь тогда экономим на функции strcpy, она просто не нужна.

и ещё:
2. Выделять память под строку динамически и копировать уже в этот массив. Тогда на вызывающую функцию возлагается обязанность освободить полученный массив после использования.
можно элементарный пример плз?
 
Текущее время: 12:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru