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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2009, 22:09   #1
Cakeinpanic
Пользователь
 
Аватар для Cakeinpanic
 
Регистрация: 10.05.2009
Сообщений: 21
По умолчанию Ошибки после компиляции

К чему бы такая ошибка?
Unhandled exception at 0x7c812a7b in IDEAMAIN.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012fca8..

выскакивает, когда программа уже запустилась
Cakeinpanic вне форума Ответить с цитированием
Старый 14.05.2009, 22:13   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

что то с выделением памяти,надо код посмотреть
counter вне форума Ответить с цитированием
Старый 14.05.2009, 22:54   #3
Cakeinpanic
Пользователь
 
Аватар для Cakeinpanic
 
Регистрация: 10.05.2009
Сообщений: 21
По умолчанию

падает на этой функции

Код:
void printstring(unsigned long long block, int size){
	int newsize=size/8;
	unsigned char *string= new unsigned char[newsize];

	for(int i=0; i<newsize; i++)
		string[i]=0;

	for (int i=0; i<size; i++)
		if (block & (ONE<<i)) 
			string[i/8]=string[i/8] | (1<<(7-i%8));

	for(int i=0; i<newsize; i++)
		printf("%c, ", string[i]);
	printf("\n");
}
Cakeinpanic вне форума Ответить с цитированием
Старый 14.05.2009, 23:03   #4
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Код:
int newsize=size/8;
это немного смущает.

И когда память то освобождается?
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....

Последний раз редактировалось ISergeyN; 14.05.2009 в 23:09.
ISergeyN вне форума Ответить с цитированием
Старый 15.05.2009, 00:16   #5
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

можно попробовать так
Код:
int newsize=(size/8)+1;
counter вне форума Ответить с цитированием
Старый 16.05.2009, 10:05   #6
Cakeinpanic
Пользователь
 
Аватар для Cakeinpanic
 
Регистрация: 10.05.2009
Сообщений: 21
По умолчанию

в функцию сегда передается 64 в данной программе
а удалять ничего не надо- оно удаляется как только функция кончается
Cakeinpanic вне форума Ответить с цитированием
Старый 16.05.2009, 14:32   #7
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Цитата:
а удалять ничего не надо- оно удаляется как только функция кончается
-1, Здесь вы не правы.
Вся выделеная динамическая память будет висеть пока вы ее не освободите.
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 16.05.2009, 14:37   #8
Cakeinpanic
Пользователь
 
Аватар для Cakeinpanic
 
Регистрация: 10.05.2009
Сообщений: 21
По умолчанию

тогда я могу удалить массив прямо в функции после вывода
Cakeinpanic вне форума Ответить с цитированием
Старый 16.05.2009, 14:48   #9
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Цитата:
Сообщение от Cakeinpanic Посмотреть сообщение
тогда я могу удалить массив прямо в функции после вывода
угу
Код:
void printstring(unsigned long long block, int size){
	int newsize=size/8;
	unsigned char *string= new unsigned char[newsize];

	for(int i=0; i<newsize; i++)
		string[i]=0;

	for (int i=0; i<size; i++)
		if (block & (ONE<<i)) 
			string[i/8]=string[i/8] | (1<<(7-i%8));

	for(int i=0; i<newsize; i++)
		printf("%c, ", string[i]);
	printf("\n");
           delete[] string;//!!!
}
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка компиляции ALEX INCORPORATEED Помощь студентам 7 14.09.2012 00:46
После ошибки продолжить работу дальше Shouldercannon Общие вопросы Delphi 2 21.04.2009 11:23
delphi7 программа после компиляции сразу закрывается fredd Помощь студентам 1 30.10.2008 14:25
ошибки при компиляции |{ot Общие вопросы Delphi 14 02.08.2008 01:20
Ошибки компиляции. У кого есть =*=|/|MM0PT@/\=*= Паскаль, Turbo Pascal, PascalABC.NET 4 02.04.2007 06:10