#include#include
"dbg.h
"#undef new
#undef delete #ifndef ndebug
//輸出除錯資訊
void dbgout( const
char*fmt, ... )
struct
alloc_node
;
static alloc_node* g_heap = null;/*
堆的申請記錄樹根節點
*/static alloc_node* g_vector_heap = null;/*
vector堆的申請記錄樹根節點
*///
our magic guard bytes申請記憶體前後加上的保護位元組
static byte g_guard =;
//在堆中申請一塊記憶體(可以申請空記憶體n=0)
void* operator
new( size_t n, cpchar file, uint line )
if( pnode else
}
*ppuplink =pnode;
}
return
pmem;
}
//在vector請一塊記憶體(可以申請空記憶體n=0)
void* operator
new( size_t n, cpchar file, uint line )
if( pnode else
}
*ppuplink =pnode;
}
return
pmem;
}
void
operator delete( void*p )
alloc_node* pcur =g_heap;
alloc_node** ppuplink = &g_heap;
while
( pcur )
memset( pmem, time(null), pcur->len );
if( pcur->lptr && pcur->rptr )
else
free( pcur );
return
;
}
if( p else
}
dbgout(
"*** fatal: delete on unalloced memory ***
");
assert(
false
);
exit( -1
);
}
void
operator delete( void*p )
alloc_node* pcur =g_vector_heap;
alloc_node** ppuplink = &g_vector_heap;
while
( pcur )
memset( pmem, time(null), pcur->len );
if( pcur->lptr && pcur->rptr )
else
free( pcur );
return
;
}
if( p else
}
dbgout(
"*** fatal: delete on unalloced memory ***
");
assert(
false
);
exit( -1
);
}
void* operator
new( size_t n )
void* operator
new( size_t n )
//在記憶體分配樹中遍歷,尋找總共分配的長度
static
void walk_alloc_tree( alloc_node* pcur, size_t*pttl )
}
//顯示堆中分配的記憶體記錄
void dump_alloc_heaps( void
)
if( g_vector_heap )
dbgout(
"********************=
");
dbgout(
"total bytes: %u
", ttl );
dbgout(
"********************=
");
}
}
#endif
免費的獲取最近幾天內的天氣情況
function vget url curl close curl 關閉curl會話 return tmpinfo 返回資料 獲取客戶端ip位址 param integer type 返回型別 0 返回ip位址 1 返回ipv4位址數字 ip位址合法驗證 long ip2long ip ip lon...
記一次說折騰就折騰的Git之旅
背景是前幾天進行專案git倉庫拆分,對一些現有的git倉庫修改,對現在使用的乙個專案遷移到另乙個倉庫中。問題是這個倉庫是n久之前建立的,有一些舊的 本地的專案還有n多個分支。遷移的目的很明確,將現有的 的分支進行合併,然後推送到新的git倉庫。因為是頭一次做這件事兒,所以走了一條彎路,我先是簡單的給...
第一次docker折騰
二 docker安裝 如果docker啟動wsl2報錯 system.invalidoperationexception failed to set version to docker desktop exit code 1 stdout 0 0 0 0u0 0f0d0j0d0 0 0 0 0 0 ...