Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2015, 02:17   #1
dimoni414
Пользователь
 
Регистрация: 20.09.2014
Сообщений: 13
Печаль Ошибка .exe has triggered a breakpoint. С++

вылетает, когда делаю delete,
если delete стоит перед strcpy, то всё норм
Код:
#include<iostream>

void Perevod(char*,int osn=65536);
int main()
{
	char buf1p[] = "378246517821467";
	Perevod(buf1p);

	return 0;
}
void Perevod(char* chislo, int osn){
	char*num = new char[sizeof(chislo)];
	strcpy(num, chislo);
	delete[]num;
}
dimoni414 вне форума Ответить с цитированием
Старый 26.09.2015, 02:20   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

А чего вы хотели? Вы же память убиваете.
Цитата:
sizeof(chislo)
= 4 (для 32битных), т.к. это указатель
p51x вне форума Ответить с цитированием
Старый 26.09.2015, 02:28   #3
dimoni414
Пользователь
 
Регистрация: 20.09.2014
Сообщений: 13
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
А чего вы хотели? Вы же память убиваете.

= 4 (для 32битных), т.к. это указатель
Мне и надо её очистить, чтобы перевыделить после этого.
Даже если я меняю на
Код:
char*num = new char [strlen(chislo)];
То вылетает ошибка:


P.S.
Почему он создаёт массив 32 знака а не 15?
в отладчике:

Последний раз редактировалось dimoni414; 26.09.2015 в 02:37.
dimoni414 вне форума Ответить с цитированием
Старый 26.09.2015, 03:45   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

strlen считает до нулевого байта... где он у вас?

Цитата:
Почему он создаёт массив 32 знака а не 15?
Повезло, именно там нашелся нулевой байт. В следующий раз может быть другим.
p51x вне форума Ответить с цитированием
Старый 26.09.2015, 11:01   #5
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

А уж сделать +1 совсем не хватает смекалки, да?
Croessmah вне форума Ответить с цитированием
Старый 26.09.2015, 11:08   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

Угу, только стркопи тоже ищет нулевой байт... поэтому то и варнинги компиляторы на нее сыпят.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Breakpoint в библиотеке dll wadzik Общие вопросы Delphi 3 30.12.2011 19:15
Тормозят условные breakpoint-ы ds.Dante C# (си шарп) 3 12.10.2011 09:52
Удалить BreakPoint lexaltd Общие вопросы Delphi 5 03.09.2010 14:59
Hardware BreakPoint Д'якон Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 26.02.2009 08:23