- 34 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 11:27:42.91 ]
- 以下のような_allocaをラップした関数を作りたいのですが
Debugでは意図通りに出力されません。 template<typename T> T *aloca(size_t t){ return (T*)_alloca(sizeof(T) * t); } int _tmain(int argc, _TCHAR* argv[]){ int *a = aloca<int>(1); *a = 1; int *b = aloca<int>(1); *b = 2; int *c = aloca<int>(1); *c = 3; printf_s("*a = %d\t", *a); printf_s("*b = %d\t", *b); printf_s("*c = %d\t", *c); return 0; } Debug出力 *a = 3 *b = 1 *c = 1 Release出力 *a = 1 *b = 2 *c = 3 やはりalocaを抜けた時点で_allocaが確保したメモリは解放されてしまうのでしょうか? だとするとReleaseで動いているように見える理由は? どうすればDebugでも動くようにできるでしょうか?
|

|