I found free_point was an error.
We could process the work of the previous error which means recover of it and the test result is O.K.
void free_point ( vPoint* p ) { printf("free_point starts. |%p| dummy_vPoint_index|%d|\r\n", p, dummy_vPoint_index); dummy_vPoint_index--; if ( dummy_vPoint[dummy_vPoint_index] == nullptr ) { dummy_vPoint[dummy_vPoint_index] = memorizevPoint ( 0.0f, 0.0f, 0.0f ); } for( int i=dummy_vPoint_index; i>=0; i-- ) { if ( dummy_vPoint[i] == p ) { // flip vPoint* w_p = dummy_vPoint[dummy_vPoint_index]; dummy_vPoint[i] = dummy_vPoint[dummy_vPoint_index]; dummy_vPoint[dummy_vPoint_index] = w_p; } } if ( dummy_vPoint_index < 0 ) dummy_vPoint_index = 0; printf("free_point ends. |%p| dummy_vPoint_index{%d}\r\n", p, dummy_vPoint_index); // exit(-1); }
--- execution 001 ---
int vAxex_2D::Calculation_Axex_002 ( ) ends.
initialize_vAxex_2D_002: malloc: 004-02
int vAxex_2D::Calculation_Axex_002 ( ) starts.
center|007AAD98| up_000|007AAE40| depth_001|007AAE70|.
memorizevPoint starts: 0.000000 0.000000 0.000000 dummy_vPoint_index 0 dummy_vPoint_max 8
aReuse: 0/8 dummy_vPoint=007AAB88
memorizevPoint starts: 0.000000 0.000000 0.000000 dummy_vPoint_index 1 dummy_vPoint_max 8
aReuse: 1/8 dummy_vPoint=007AAC90
center|007AAD98| up_001|007AAC90| depth_001|007AAE70| right_001|007AAB88|.
free_point starts. |007AAE40| dummy_vPoint_index|2|
free_point ends. |007AAE40| dummy_vPoint_index{1}
free_point starts. |007AAC90| dummy_vPoint_index|1|
free_point ends. |007AAC90| dummy_vPoint_index{0}
free_point starts. |007AAB88| dummy_vPoint_index|0|
free_point ends. |007AAB88| dummy_vPoint_index{0}
free_point starts. |007AAE70| dummy_vPoint_index|0|
free_point ends. |007AAE70| dummy_vPoint_index{0}
int vAxex_2D::Calculation_Axex_002 ( ) ends.
initialize_vAxex_2D_002: malloc: 004-03
int vAxex_2D::Calculation_Axex_002 ( ) starts.
center|007AAD38| up_000|007AABB8| depth_001|007AAC00|.
memorizevPoint starts: 0.000000 0.000000 0.000000 dummy_vPoint_index 0 dummy_vPoint_max 8
aReuse: 0/8 dummy_vPoint=007AAB88
memorizevPoint starts: 0.000000 0.000000 0.000000 dummy_vPoint_index 1 dummy_vPoint_max 8
aReuse: 1/8 dummy_vPoint=007AAC90
center|007AAD38| up_001|007AAC90| depth_001|007AAC00| right_001|007AAB88|.
free_point starts. |007AABB8| dummy_vPoint_index|2|
free_point ends. |007AABB8| dummy_vPoint_index{1}
free_point starts. |007AAC90| dummy_vPoint_index|1|
free_point ends. |007AAC90| dummy_vPoint_index{0}
free_point starts. |007AAB88| dummy_vPoint_index|0|
free_point ends. |007AAB88| dummy_vPoint_index{0}
free_point starts. |007AAC00| dummy_vPoint_index|0|
free_point ends. |007AAC00| dummy_vPoint_index{0}
int vAxex_2D::Calculation_Axex_002 ( ) ends.
initialize_vAxex_2D_002: malloc: 004-04
002: int initialize_vAxex_2D_003() ends.
p|007AAE58|( 100.000000, 100.000000, 0.000000)
p|007AAE28|( 0.000000, 100.000000, 100.000000)
p|007AAD98|( 100.000000, 0.000000, 100.000000)
v3dCalculation:: calculation_thread_017 () ends.
main ends.
--- execution 001 ---