Waitrud Weber’s blog

things and reminders for memories

3d: WindowsAPI: Windows-make: How do we face memories problem: Use Print Memories:

We could not print Anchors.
---
We changed our methods which is global function, today.
dummy_vPoint_index++ before return, so, which ensured next value is dummy_vPoint[dummy_vPoint_index];
And we could see if dummy_vPoint[dummy_vPoint_index] is nullptr before return.
This is O.K.
Memorization error is another reason.

242 :// Recreated: 20200218
243 :// Recreated: 20200414
244 ://
245 ://
246 ://
247 :vPoint* memorizevPoint( float a, float b, float c ) {
248 :	printf("memorizevPoint starts: %f %f %f dummy_vPoint_index %d dummy_vPoint_max %d\r\n", a, b, c, dummy_vPoint_index, dummy_vPoint_max);
249 :
250 :	// Mallocation: initialize: 20200414
251 :	if ( dummy_vPoint_max == 0 ) {
252 :		dummy_vPoint_max = 8;
253 :		dummy_vPoint_index = 8;
254 :		dummy_vPoint = (vPoint**) malloc ( sizeof(vPoint*) * dummy_vPoint_max );
255 :	}
256 :
257 :	if ( dummy_vPoint_index < dummy_vPoint_max ) {
258 :		if ( dummy_vPoint[dummy_vPoint_index] != nullptr ) {
259 :			if ( dummy_vPoint_index >= dummy_vPoint_max - 1 ) {
260 :				dummy_vPoint_max = dummy_vPoint_max * 2;
261 :				dummy_vPoint = (vPoint**) realloc ( dummy_vPoint, sizeof(vPoint*) * dummy_vPoint_max );
262 :			}
263 :			dummy_vPoint_index++;
264 :			printf("aReuse: %d/%d dummy_vPoint=%p\r\n", dummy_vPoint_index -1, dummy_vPoint_max, dummy_vPoint[dummy_vPoint_index - 1]);
265 :			//exit(-1);
266 :			return dummy_vPoint[dummy_vPoint_index - 1];
267 :		} else {
268 :			// nullptr
269 :			dummy_vPoint[dummy_vPoint_index] = new vPoint( a, b, c );
270 :			dummy_vPoint_index++;
271 :			printf("aNew: %d/%d dummy_vPoint=%p\r\n", dummy_vPoint_index -1, dummy_vPoint_max, dummy_vPoint[dummy_vPoint_index - 1]);
272 :			return dummy_vPoint[dummy_vPoint_index - 1];
273 :		}
274 :	}
275 :
276 :
277 :	// Rallocation:
278 :	if ( dummy_vPoint_index >= dummy_vPoint_max - 1 ) {
279 :		dummy_vPoint_max = dummy_vPoint_max * 2;
280 :		dummy_vPoint = (vPoint**) realloc ( dummy_vPoint, sizeof(vPoint*) * dummy_vPoint_max );
281 :	}
282 :
283 :	if ( dummy_vPoint[dummy_vPoint_index] == nullptr ) {
284 :		dummy_vPoint[dummy_vPoint_index] = new vPoint ( a, b, c );
285 :	}
286 :
287 :	dummy_vPoint_index++;
288 :	printf("memorizevPoint returns: %p: dummy_vPoint_index %d dummy_vPoint_max %d\r\n", dummy_vPoint[dummy_vPoint_index - 1], dummy_vPoint_index - 1, dummy_vPoint_max );
289 :	return dummy_vPoint[dummy_vPoint_index - 1];
290 :}