- 1
- 2
CStringA * str = new CStringA; - создает и пашет на ура
CStringA * str = (CStringA *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(CStringA)); часов 5 назад так же пахало на ура, помылся в душе и ... бля мистика возвращает неверный указатель
ISith 24.01.2010 19:09 # 0
guest 24.01.2010 19:26 # 0
guest 24.01.2010 22:10 # 0
ISith 25.01.2010 11:25 # +1
guest 25.01.2010 11:38 # 0
А за такой код руки бы оторвал, почему после new нет скобочек? Типа конструктор можно и не вызывать. Соответственно и во втором варианте конструктор не вызывается, а если хочется в создать не в куче, так можно написать new(указатель) CString();
ISith 25.01.2010 13:12 # 0
каких таких скобочек? мне кажется ты что-то путаешь =)
guest 25.01.2010 15:02 # +25
guest 27.01.2010 02:20 # 0
tz-lom 27.01.2010 11:27 # 0
память аллоцированная на куче содержит рандомные значения
Altravert 27.01.2010 17:43 # 0
Во-вторых, конструктор по умолчанию пишется обычно как раз для сброса значений.
Sauron 24.01.2010 23:00 # +3
nolka4 25.01.2010 11:06 # 0
guest 25.01.2010 11:18 # 0
guest 25.01.2010 20:36 # +1
guest 27.01.2010 18:11 # +1
LPVOID * chunk = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(CStringA));
CStringA * str = new( chunk ) CStringA;
guest 27.01.2010 20:54 # 0
guest 27.01.2010 21:28 # 0
guest 27.01.2010 21:29 # 0
guest 27.01.2010 22:04 # 0
guest 27.01.2010 22:02 # −1
Altravert 28.01.2010 17:01 # +2
guest 06.03.2010 03:40 # 0