メモリーの再利用。
	
	結果は×。
	
	
	ストックした、メモリーのアドレスを再利用したが、タスクマネージャーで監視すると増加している。つまり、malloc()のメモリ確保とは別のところで消費しているのか・・?
	
	
	
	//------------------------------------
	// nodeスタック
	// free()するところのメモリーアドレスを保存し
	// 再利用する
	//------------------------------------
	typedef struct _NODE_STOCK{
	int addr_oya;
	int addr_ch;
	}NODE_STOCK;
	 
	#define NODE_STOCK_CNT   10000
	
	
		
		//要らなくなったメモリーアドレスをストックし後で再利用する
	
		void free_node(int addr, int sw){
	
		int i;
	
		 
	
		//ストックする空きがあるか?
	
		if( sw == 1 && node_stock_cnt_oya > NODE_STOCK_CNT )return; //保存出来ない。
	
		if( sw == 2 && node_stock_cnt_ch  > NODE_STOCK_CNT )return; //保存出来ない。
	
		 
	
		// [0] [1] [2]   <--node_stock_cnt_oya
	
		//  1   2   3   
	
		 
	
		if(sw == 1){
	
		if(node_stock_cnt_oya < 0)node_stock_cnt_oya = 0;
	
		i = node_stock_cnt_oya;
	
		 
	
		node_stock[i].addr_oya = addr;
	
		node_stock_cnt_oya++;
	
		node_stock_cnt_oya3++;
	
		printf("%d stock address[%d] = %d, %d\n", sw, node_stock_cnt_oya, node_stock[i].addr_oya, node_stock_cnt_oya3);
	
		}else{
	
		if(node_stock_cnt_ch < 0)node_stock_cnt_ch = 0;
	
		i = node_stock_cnt_ch;
	
		 
	
		node_stock[i].addr_ch  = addr;
	
		node_stock_cnt_ch++;
	
		node_stock_cnt_ch3++;
	
		printf("%d stock address[%d] = %d, %d\n", sw, node_stock_cnt_ch,  node_stock[i].addr_ch, node_stock_cnt_ch3);
	
		}
	
		 
	
		 
	
		}
	
		
		 
	
	
		//--------------------------------
	
		// 親の構造体にセット
	
		//--------------------------------
	
		NODE* list_oya_set(NODE *no, char* node, int WHO, BORD *bord, int cnt){
	
		 
	
		 NODE *c=NULL, *p=NULL;
	
		 
	
		if(node_stock_cnt_oya > 0){
	
		c = (NODE*)node_stock[node_stock_cnt_oya - 1].addr_oya;
	
		node_stock_cnt_oya--;
	
		printf("call stock oya %d %d %d\n", c, node_stock_cnt_oya2, node_stock_cnt_oya);node_stock_cnt_oya2++;
	
		}else{
	
		c = (NODE*)malloc(sizeof(NODE));
	
		memset(c, 0, sizeof(NODE));
	
		printf("call malloc oya %d\n", node_stock_cnt_malloc_oya);node_stock_cnt_malloc_oya++;
	
		}
	
		 
 
ーーーー
	1 stock address[1] = 24934472, 1  ← アドレス24934472をストックし
	
		1 stock address[2] = 24933360, 2
	
		1 stock address[3] = 24932248, 3
	
		1 stock address[4] = 3799896, 4
	
		1 stock address[5] = 3798784, 5
	
		1 stock address[6] = 3797672, 6
	
		1 stock address[7] = 3796560, 7
	
		1 stock address[8] = 3795448, 8
	
		1 stock address[9] = 3794336, 9   ← アドレス3794336をストックし
	
		2 stock address[1] = 24919376, 1
	
		2 stock address[2] = 24920248, 2
	
		2 stock address[3] = 24921120, 3
	
		2 stock address[4] = 24921992, 4
	
		2 stock address[5] = 24922864, 5
	
		2 stock address[6] = 24923736, 6
	
		2 stock address[7] = 24924608, 7
	
		2 stock address[8] = 24925480, 8
	
		2 stock address[9] = 24926352, 9
	
		1 stock address[10] = 24935584, 10   ← アドレス24935584 をストックし
	
		call stock oya 24935584 0 9   ← アドレス24935584 を再利用。
	
		call stock ch 24926352 0 8
	
		call stock ch 24925480 1 7
	
		call stock ch 24924608 2 6
	
		call stock oya 3794336 1 8   ← アドレス3794336 を再利用。
	
		call stock ch 24923736 3 5
	
		call stock ch 24922864 4 4
	
		call stock ch 24921992 5 3
	
		call stock ch 24921120 6 2
	
		call stock ch 24920248 7 1
	
		call stock ch 24919376 8 0
	
		call malloc ch 48
	
		call malloc ch 49
	
		call malloc ch 50
	
		call stock oya 3795448 2 7
	
		call stock oya 3796560 3 6
	
		call stock oya 3797672 4 5
	
		call stock oya 3798784 5 4
	
		call stock oya 3799896 6 3
	
		call stock oya 24932248 7 2
	
		call stock oya 24933360 8 1
	
		call stock oya 24934472 9 0  ← アドレス24934472を再利用。
 
PR