您的位置:首页 > 其它

传递给线程的结构体一定要在堆上分配内存

2013-05-24 10:25 633 查看
// Test11.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "Test11.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// The one and only application object

CWinApp theApp;

using namespace std;

typedef struct _tagParamInfo
{
int i;

}ParamInfo,*PParamInfo;

DWORD WINAPI ThreadProc(LPVOID lPatamter)
{

//	PParamInfo theParamInfo = static_cast<PParamInfo>(lPatamter);
int *lpI = static_cast<int*>(lPatamter);
Sleep(1000);

printf("%d\n", *lpI);

//delete theParamInfo;

//delete lPatamter;
return 0;
}

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0;

// initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
// TODO: change error code to suit your needs
cerr << _T("Fatal Error: MFC initialization failed") << endl;
nRetCode = 1;
}
else
{
// TODO: code your application's behavior here.
for (int i = 0; i < 10; i++)
{
PParamInfo theParamInfo = new ParamInfo();
theParamInfo->i = i;

int li = i;
::CreateThread(NULL, 0, ThreadProc, &li, 0, NULL);
}

printf("end\n");
Sleep(5000);
}

return nRetCode;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: