#include <stdio.h>
static int *pi=NULL;
void func( int array ){
if( pi==NULL ){
pi=new int[array];
printf("new int[%d]しました。アドレスは%p\n", array, pi );
}else {
printf("すでに確保されてるのでnew int[%d]しません!!!\n", array);
}
}
void release(void){
if( pi!=NULL ){
delete[] pi;
printf("delete[] intしました。アドレスは%p\n", pi);
pi=NULL;
}else{
printf("すでに解放済みなのでdeleteしません!!!\n");
}
}
int main(void) {
func(3);
func(5);
func(7);
release();
release();
func(10);
release();
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgpzdGF0aWMgaW50ICpwaT1OVUxMOwoKdm9pZCBmdW5jKCBpbnQgYXJyYXkgKXsKCWlmKCBwaT09TlVMTCApewoJCXBpPW5ldyBpbnRbYXJyYXldOwoJCXByaW50ZigibmV3IGludFslZF3jgZfjgb7jgZfjgZ/jgILjgqLjg4njg6zjgrnjga8lcFxuIiwgYXJyYXksIHBpICk7Cgl9ZWxzZSB7CgkJcHJpbnRmKCLjgZnjgafjgavnorrkv53jgZXjgozjgabjgovjga7jgaduZXcgaW50WyVkXeOBl+OBvuOBm+OCk++8ge+8ge+8gVxuIiwgYXJyYXkpOwoJfQp9Cgp2b2lkIHJlbGVhc2Uodm9pZCl7CglpZiggcGkhPU5VTEwgKXsKCQlkZWxldGVbXSBwaTsKCQlwcmludGYoImRlbGV0ZVtdIGludOOBl+OBvuOBl+OBn+OAguOCouODieODrOOCueOBryVwXG4iLCBwaSk7CgkJcGk9TlVMTDsKCX1lbHNlewoJCXByaW50Zigi44GZ44Gn44Gr6Kej5pS+5riI44G/44Gq44Gu44GnZGVsZXRl44GX44G+44Gb44KT77yB77yB77yBXG4iKTsKCX0KfQppbnQgbWFpbih2b2lkKSB7CgkKCWZ1bmMoMyk7CglmdW5jKDUpOwoJZnVuYyg3KTsKCXJlbGVhc2UoKTsKCXJlbGVhc2UoKTsKCWZ1bmMoMTApOwoJcmVsZWFzZSgpOwoJCglyZXR1cm4gMDsKfQ==