- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
typedef char char_array_2 [2] ;
typedef char char_array_3 [3] ;
typedef char char_array_22[32];
/* ... */
if( 0 == (purpose = new char_array_3[ dArraySize ] ) )
{
ALLOC_ERROR();
}
if( 0 == (mode = new char_array_3[ dArraySize ] ) )
{
ALLOC_ERROR();
}
if( 0 == (state = new char_array_2[ dArraySize ] ) )
{
ALLOC_ERROR();
}
if( 0 == (referencedate = new char_array_22[ dArraySize ] ) )
{
ALLOC_ERROR();
}
/* и еще десяток в таком же стиле */
С++ в (болгарские) массы. и пусть только попробуют сказать что мы ошибок выделения памяти не обрабатываем.
ЗЫ самый прикол что код который этой памятью пользуется 100% совместим с std::vector<std::string>. хотя я бы лично все строки в структуру загнал (и структуры в вектор) бо 10+ массивов это говно.
DarthBobr 13.08.2010 08:31 # 0
Dummy00001 13.08.2010 15:47 # +2
теперь и это говно продется фиксить: через 4-5 уровней макросов, можно увидеть что это "фатальная ошибка" и она обрабатывается .. печатанием сообщения на stdout... идиоты даже эксепшена не бросают.
Altravert 13.08.2010 15:56 # 0
Dummy00001 13.08.2010 16:08 # 0
Altravert 13.08.2010 16:17 # 0
DarthBobr 13.08.2010 16:00 # 0
if( 0 == (purpose = new char_array_3[ dArraySize ] ) )
{
throw MEM_ALLOC_ERR;
}
Вот и стало интересно, что же макрос делает, а то у меня в текущем проекте макросы делают все что хочешь, только не то, что надо. :)
З.Ы.Сразу подозревал, что обработка некорректная)
Altravert 13.08.2010 15:39 # 0
typedef char char_array_2 [2] ;?
В смысле, что значит "[2]"?
Dummy00001 13.08.2010 15:51 # 0
Altravert 13.08.2010 15:55 # 0
Ну об этом хоть догадался, но char_array_22[32] уже не осилил.
Dummy00001 13.08.2010 16:13 # 0
нет, это "char[dArraySize][3]", алоцируется dArraySize элементов типа char[3].
там char_array_2 прикольней используется: strcpy( state[mCurrRow], "A" ) или strcpy( state[mCurrRow], "D" )... т.е. там 2 элемента бо они копипастили тучи кода. оно там в общую картину вписывает, поэтому с первого взгляда какое это ГК и не догадываешься.
Altravert 13.08.2010 16:17 # 0
cutwater 17.08.2010 14:43 # 0
Dummy00001 17.08.2010 15:12 # 0