Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
DarkMasterW
4 / 4 / 1
Регистрация: 25.10.2013
Сообщений: 230
#1

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

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

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

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

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

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

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

Функция в качестве параметра
Я не знаю, как передать функцию в качестве параметра. При обработке программа...

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

Функция, void foo(char* str) с учётом того, что может изменится или нет размерность str - это так глупо
0
yrceus
82 / 82 / 80
Регистрация: 25.08.2013
Сообщений: 330
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2016, 13:44

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

Передать функцию в качестве параметра
Нужно передать функцию func в качестве параметра для функции palindrom. Как это...

Передача функции в качестве параметра
#include <iostream> #include <math.h> using namespace std; double...


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

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

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