Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
 Аватар для AK3RN
307 / 20 / 4
Регистрация: 01.05.2010
Сообщений: 250

bad ptr

22.05.2010, 09:51. Показов 3544. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Пишу небольшую программу для работы с текстом. При substr'е куска строки вывелся не только нужный мне кусок, но и немного мусора из памяти(вроде ══════¤¤¤¤лллллллл■ю■). После непродолжительной отладки выяснилось, что при объявлении указателя на массив символов и его инициализации:

C++
1
char* buff="some text\0";
значение buff равно <bad ptr> и ссылается он на 0xcccccccc

Самое непонятное то, что при объявлении указателя на массив символов в других функциях все происходит нормально и мусора из памяти нет!
Что мне делать? Вроде бы объявляю и инициализирую все правильно.

Спасибо за помощь.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.05.2010, 09:51
Ответы с готовыми решениями:

Ошибка bad ptr при возвращении занчения из функции
Помогите по функции, не возвращает значения, вот как объявлена функция и вот как пытаюсь вызвать чтобы получить значение этой самой функции...

Ошибка на стадии выполнения ptr = ptr;
class CObject { friend Parser; // много полей методов, все должны заполняться в парсере } class Parser { CObject * object_...

Неверно работает код *ptr++ = *ptr2++
Собственно столкнулся со следующей проблемой, код выглядит так: #include &lt;iostream&gt; using std::cout; using std::endl; ...

5
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
22.05.2010, 10:33
зачем указатель
C++
1
char buff[] = "some text\0";
0
 Аватар для AK3RN
307 / 20 / 4
Регистрация: 01.05.2010
Сообщений: 250
22.05.2010, 11:23  [ТС]
Цитата Сообщение от Roma_F Посмотреть сообщение
зачем указатель
C++
1
char buff[] = "some text\0";
К Вашему сведению, это одно и то же.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
22.05.2010, 12:12
Цитата Сообщение от AK3RN Посмотреть сообщение
К Вашему сведению, это одно и то же.
Во-первых это не одно и то же. Про разницу в этих двух объявлениях не раз писали на форуме. В двух словах
C
1
2
char *buf1 = "abcd"; /* неконстантный указатель на константную строку */
char buf2[] = "efgh"; /* константный указатель на неконстантную строку */
и кстати во-вторых '\0' в конце строки и сам поставится.
0
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
22.05.2010, 13:27
Цитата Сообщение от AK3RN Посмотреть сообщение
Самое непонятное то, что при объявлении указателя на массив символов в других функциях все происходит нормально и мусора из памяти нет!
Что мне делать? Вроде бы объявляю и инициализирую все правильно.
а вообще что вы от нас то хотите?
здесь телепатов нет - от приведённой строчки толку нет, сама по себе она ошибку не вызовет, об остальном коде можно только догадываться по вашему краткому описанию

Цитата Сообщение от AK3RN Посмотреть сообщение
К Вашему сведению, это одно и то же.
(в дополнение к посту easybudda)
C++
1
2
3
4
5
char buff1[] = "some text";
char *buff2 = "some text";
 
cout << sizeof(buff1) << endl;
cout << sizeof(buff2) << endl;
0
 Аватар для AK3RN
307 / 20 / 4
Регистрация: 01.05.2010
Сообщений: 250
22.05.2010, 15:08  [ТС]
Кода у меня там около двух-трех сотен строк. Выкладывать всё смысла нет. Подробнее: создал функцию, первой строкой написал char* buff="some text\0"; и все, сразу ошибка. Может ли быть это от того, что в других функциях выделяемая при помощи new память не освобождается?

Добавлено через 13 минут
Проблема решена. Спасибо за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.05.2010, 15:08
Помогаю со студенческими работами здесь

Значение указателей (*ptr.) на пустые ячейки памяти
Здравствуйте, уважаемые форумчане! С началом изучения С++ стало возникать множество вопросов. Когда резервируется свободная память...

Как динамически обьявить многомерный массив (ptr = new int[5][5])?
как обявить вот такую вот штуку: int * ptr = new int; заранее благодарен Роман.

Что означает строка: CString &ptr = Text; ?
Помогите please! Что означает строка: CString &amp;ptr = Text; Text определена выше, как: CString Text;

bad size length
#include&lt;iostream&gt; #include&lt;cstdlib&gt; using namespace std; namespace vld { template&lt;class ITEM&gt; class SmartArray { ...

istream состояние bad
Всем привет! Как можно вызвать состояние bad у потока istream? (т.е. не так, что &quot;состояние bad может быть вызвано серьезной ошибкой...


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

Или воспользуйтесь поиском по форуму:
6
Закрытая тема Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru