DEBUG/RELEASE 에서 모두 체크해야 함. (최적화로 인해 다르게 나올 수 있음.)
_alloca 사용하려고 확인해보려고 한건데 RELEASE 에선 alloca 사이즈가 안잡힘.
그리고 신용이 안감
//test.h
#pragma once
#include <malloc.h>
class Test {
public:
void test() {
printStackSize();
{
char buf[1024];
for (int i=0; i<sizeof(buf); ++i) buf[i] = 'i';
buf[sizeof(buf)-1] = 0;
/*
char* buf = (char*)_alloca(1024);
for (int i=0; i<1024; ++i) buf[i] = 'i';
buf[1024-1] = 0;
*/
printf("%s\n", buf);
}
printStackSize();
}
void printStackSize(int depth = 0) {
printf("total size : %d byte\t%d KB\n", top_-(char*)&depth, (top_-(char*)&depth)/1024);
}
char* top_;
};
//main.cpp
#include "stdafx.h"
#include "test.h"
char* top = 0;
int _tmain(int argc, _TCHAR* argv[])
{
top = (char*)&argc;
Test test;
test.top_ = top;
test.printStackSize();
test.test();
test.printStackSize();
return 0;
}
'C++' 카테고리의 다른 글
기초적인 IOCP 서버 개발 팁. 연결에서 종료까지... (0) | 2017.03.27 |
---|---|
LFH (Low Fragmentation Heap), TBB alloc (0) | 2016.08.08 |
c++ subversion static libray 컴파일 (0) | 2016.02.02 |
boost 컴파일 (0) | 2016.01.22 |
nssm curl 사용하여 주시적으로 웹페이지 호출하는 서비스 만들기 (0) | 2014.07.03 |
mongodb client driver 컴파일 (0) | 2014.05.15 |
매크로는 이런식으로 쓰면 좀 편함. (0) | 2014.03.28 |
리버싱 (0) | 2014.03.28 |