Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
5 / 5 / 1
Регистрация: 25.10.2013
Сообщений: 230
1

Безопасность передачи string.c_str() в качестве параметра

16.03.2016, 13:28. Показов 1989. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть некоторая функция которая принимает в себя си-строку, модифицирует ее (в т.ч. может увеличить количество данных). Безопасно ли передавать в подобную функцию string.c_str() без контроля выделенной памяти под string или же надо работать аналогично си строке резервируя память и следя за переполнением?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.03.2016, 13:28
Ответы с готовыми решениями:

способы передачи объекта в функцию в качестве параметра
Подскажите способы передачи обьекта в функцию в качестве параметра, пожалуйста

Ошибка компиляции при попытке передачи переменной ссылочного типа в качестве параметра
Вечер добрый, форумчане. Вопрос в виде комментария написан в коде: namespace TestConsole { ...

При передачи указателя на объект vector в качестве параметра при выполнении программы происходит ошибк сегметирования
Доброго всем времени суток. Помогите понять, почему происходит такая ситуация. ОС Linux Mint ...

string, c_str
функция string.c_str() возвращает const char*, что бы не изменяли строку напрямую. Но! Если явно...

2
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
16.03.2016, 13:38 2
DarkMasterW, не безопастно.

Функция, void foo(char* str) с учётом того, что может изменится или нет размерность str - это так глупо
0
88 / 88 / 80
Регистрация: 25.08.2013
Сообщений: 337
16.03.2016, 13:44 3
Лучший ответ Сообщение было отмечено DarkMasterW как решение

Решение

Да и не сможет изменить, и по значению нельзя передать))). string::c_str() возвращает указатель на константу.
C++
1
2
3
4
5
6
    string x = "abc";
    const char *z = x.c_str(); 
 
    char *l = x.c_str(); // ошибка
 
    printf("%x   %x\n", z, &x.front()); // адрес один
0
16.03.2016, 13:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.03.2016, 13:44
Помогаю со студенческими работами здесь

Буффер из std::string c_str()
Здравствуйте! такое дело: Проект на Qt5 и С++11. Есть форма с полем ввода. Введённое содержимое...

String в char и c_str(): обмен содержимого буферов
Решил перенести проект с c++ builder'a на visual c++, столкнулся с такой проблемой. Есть два...

Искать файл, который задан в качестве первого параметра, в каталогах, заданных в качестве остальных параметров
Нужен командный файл, который будет искать файл, который задан в качестве первого параметра в...

Пакетный файл, который будет осуществлять поиск файла, заданного в качестве первого параметра в каталогах, заданных в качестве остальных параметров
Написать пакетный файл, который будет осуществлять поиск файла, заданного в качестве первого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru