Форум программистов, компьютерный форум 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, 16:55  [ТС]     Строки - засорение памяти
2. Смотря как она возвращает. Покажите саму функцию
Хотелось бы разобраться в общем, а не только для конкретного случая.

Ну, допустим:
а)
C++
1
2
3
4
5
char* FunctionA()
{
    char* str1="abcd";
    return str1;
}
b)
C++
1
2
3
4
5
char* FunctionB()
{
    char str1[10]="abcd";
    return str1;
}
и ещё вопрос
3) Данный код
C++
1
2
char* str1="abc";
str1="rr";
меняет сам указатель так, что он показывает на иную ячейку памяти (по идее так должно быть, ибо при добавлении к первой строке const всё работает) или пытается что-то куда-то перезаписать? (если бы не пытался у меня не возникали бы баги при использовании такого типа кодов)

Если вдруг перезаписывает можно ли сделать так:
C++
1
char* str1="1234567890";
+ как-то указать компилятору что строку нужно хранить в секторе памяти, доступном не только для считывания
и потом работать с str1 как со строкой char str1[10] ?

З.Ы. И почему в коде 2 выскакивает
Warning: W8075 Suspicious pointer conversation
На случай если я что-то напутал с типами или как?

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