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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
DarkMasterW
4 / 4 / 0
Регистрация: 25.10.2013
Сообщений: 230
#1

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

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

Есть некоторая функция которая принимает в себя си-строку, модифицирует ее (в т.ч. может увеличить количество данных). Безопасно ли передавать в подобную функцию string.c_str() без контроля выделенной памяти под string или же надо работать аналогично си строке резервируя память и следя за переполнением?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2016, 13:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Безопасность передачи string.c_str() в качестве параметра (C++):

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

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

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

Ошибка передачи параметра в функцию - C++
#include "stdafx.h" #include "War.h" int _tmain(int argc, _TCHAR* argv) { War warv("Battle"); ...

Функция в качестве параметра - C++
Я не знаю, как передать функцию в качестве параметра. При обработке программа никаких ошибок не выдает, но результат печатает неверный. ...

Структура в качестве параметра шаблона - C++
Добрый день, возник вопрос при выполнении КР по программированию: Можно ли передать структуру в качестве параметра в шаблона класса. То...

2
rikimaru2013
C++ Game Dev
2438 / 1132 / 240
Регистрация: 30.11.2013
Сообщений: 3,688
16.03.2016, 13:38 #2
DarkMasterW, не безопастно.

Функция, void foo(char* str) с учётом того, что может изменится или нет размерность str - это так глупо
0
yrceus
82 / 82 / 54
Регистрация: 25.08.2013
Сообщений: 326
16.03.2016, 13:44 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Да и не сможет изменить, и по значению нельзя передать))). 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2016, 13:44
Привет! Вот еще темы с ответами:

Передать функцию в качестве параметра - C++
Нужно передать функцию func в качестве параметра для функции palindrom. Как это сделать? желательно не через указатель int func(int n)...

Передача файла в качестве параметра - C++
Как, в качестве параметра, передать функции файл и структуру??? Добавлено через 1 час 1 минуту Разве никто не знает???

Конструктор в качестве параметра operator<< - C++
Подскажите как правильно перегрузить operator&lt;&lt; чтобы в поток выводить явновызываемый конструктор класса.

Передача функции в качестве параметра - C++
Как передать функцию с параметрами в transform? Т.е., например, мне надо из каждого числа вектора вычесть число k с помощью transform'а,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru