#include<windows.h>
#include<stdio.h>
//声明线程函数
DWORD WINAPI myfun1(LPVOID lpParamer);
DWORD WINAPI myfun2(LPVOID lpParamer);
//定义全局变量并初始化
static int a1=0;
//定义临界区对象
CRITICAL_SECTION Section;
int main()
{   
//创建线程句柄
HANDLE h1,h2;
//创建线程1
h1=CreateThread(NULL,0,myfun1,NULL,0,NULL);
printf("线程1开始运行\r\n");
//创建线程2
h2=CreateThread(NULL,0,myfun2,NULL,0,NULL);
    printf("线程2开始运行\r\n");
//关闭线程句柄
CloseHandle(h1);
CloseHandle(h2);
//初始化临界区对象
InitializeCriticalSection(&Section);
Sleep(10000);
printf("正常退出程序按'q'\r\n");
if(getchar()=='q')
{  
//删除临界区对象
       DeleteCriticalSection(&Section);
}
else
    {
return 0;
}

}
DWORD WINAPI myfun1(LPVOID lpParamer)
{
while(1)
{   //进入临界区
EnterCriticalSection(&Section);
        a1++;
if(a1<100)
{
Sleep(1000);
printf("线程1正在计数%d\r\n",a1);
LeaveCriticalSection(&Section);
}
else
{
LeaveCriticalSection(&Section);
break;//跳出循环
}
}
return 0;
}
DWORD WINAPI myfun2(LPVOID lpParamer)
{
while(1)
{
EnterCriticalSection(&Section);
a1++;
if(a1<100)
{
Sleep(1000);
printf("线程2正在计数%d\r\n");
LeaveCriticalSection(&Section);
}
else
{
LeaveCriticalSection(&Section);
break;//跳出循环
}
}
return 0;
}
这是代码   编译也没啥问题       运用时总报内存不能写的错误          你大神帮忙看看