powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Memory Allocation
8 сообщений из 8, страница 1 из 1
Memory Allocation
    #33019650
Oscar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
int StrLen = strlen(prName)+ 1 ; 

	char * pBuffer = new char[StrLen];  // После allocation prName очищается (!), почему???
	strcpy(pBuffer,prName);   

Передаю в функцию ссылку на строку то есть прототип Функции -- int SomeFunc( char * prName). Все проверяю в отладчике. Помогите пожалуйста решить проблему! Спасибо всем заранее.
...
Рейтинг: 0 / 0
Memory Allocation
    #33019682
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неплохо-бы взглянуть на SomeFunc.
...
Рейтинг: 0 / 0
Memory Allocation
    #33019692
Oscar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
HANDLE GetPrHandle(const char * prName)
{

	HANDLE prHandle;  
	PRINTER_DEFAULTS pd; 

	pd.DesiredAccess = PRINTER_ALL_ACCESS; 
	pd.pDatatype = NULL; 
	pd.pDevMode = NULL;

	int StrLen = strlen(prName)+ 1 ; 

	char * pBuffer = new char[StrLen]; 
	strcpy(pBuffer,prName);   
	
	if (!OpenPrinter(pBuffer, &prHandle, &pd))	{
		ErrorMsg(); 
		return  0 ;
	} 
	else
		return prHandle;
	
}
Спасибо за ответ. Вот сама функция
...
Рейтинг: 0 / 0
Memory Allocation
    #33019708
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема скорее всегда где-то в окружающем коде, так как я прогнал вашу функцию и проблем не обнаружил, память остается неповрежденной.
________________________________________________________
Глюк - это высокоорганизованная система не поддающихся определению частиц
...
Рейтинг: 0 / 0
Memory Allocation
    #33019724
Oscar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelikkПроблема скорее всегда где-то в окружающем коде, так как я прогнал вашу функцию и проблем не обнаружил, память остается неповрежденной.
________________________________________________________
Глюк - это высокоорганизованная система не поддающихся определению частиц

Спасибо Вам за ответ. Дело в том, что когда я просто скопировал код функции, туда откуда она должна была вызываться, то все работает нормально. Я незнаю, к сожалению всех тонкостей пока, так какначинающий С++ но буду конечно же искать где ошибка.
...
Рейтинг: 0 / 0
Memory Allocation
    #33019749
Oscar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может есть у кого нибудь еще какие то идеи, по этому поводу? Спасибо заранее.
...
Рейтинг: 0 / 0
Memory Allocation
    #33020150
Oscar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
HANDLE GetPrHandle(const char * prName)
Функция не может менять *prName, но он очищается после вызова этой функции! Это же вообще абсурд! Почему?? Может ли кто нибудь объяснить?! Спасибо заранее.

P.S Может дело в Calling Convention??
...
Рейтинг: 0 / 0
Memory Allocation
    #33020359
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если после строки
char * pBuffer = new char[StrLen];
действительно очищается prName :
// После allocation prName очищается (!), почему???
которая ни к pBuffer, ни к StrLen не относится никак,
то это - полный бред. Такое может быть только при каких-то глобальных неправильностях в программе.
Я могу предложить тебе прислать весь код программы.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Memory Allocation
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]