循环用CreateThread创建多线程的传参有关问题

循环用CreateThread创建多线程的传参问题
我本来打算给第一个创建的线程传入1,第二个创建的线程传入2

于是我就这样写
主函数循环创建线程

for (i=1;i<=5;i++)
{
hThread[i-1] = CreateThread(NULL,0,FileThread,&i,0,NULL);
}

子线程中直接打印出传入的参数

结果全部打印6

我调试了一下,是因为CreateThread传入的参数是一个地址, CreateThread创建子线程速度快

所以子线程读取地址中的值的时候i已经自加到6了

问怎么才能用循环实现第一个创建的线程传入1,第二个创建的线程传入2
多线程 CreateThread 传参

------解决方案--------------------
这样,不就行了
for (i=1;i<=5;i++)
{
hThread[i-1] = CreateThread(NULL,0,FileThread,i,0,NULL);
}