程序是基于对话框的,对输入的数据进行直接插入排序 然后输出void C排序Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE);
int s[1000],t;
m_e1.GetWindowTextW(LPTSTR(s),1000);

for (int i=1;i!='\0';++i)
{if(s[i]<s[i-1])
      {t=s[i];  //t为监视哨
       int j=i-1;
  for (int j=i-1;t<s[j]&&t>=0;--j)
  s[j+1]=s[j];    s[j+1]=t;}}
    
      m_e2.SetWindowTextW(LPCTSTR(s));
  UpdateData(FALSE);
}执行时,总是这样
排序.exe 中的 0x00bd30cc 处未处理的异常: 0xC0000005: 读取位置 0x001e1000 时发生访问冲突为什么吖..

解决方案 »

  1.   

    for (int i=1;i!='\0';++i)
    写的这么有创意?把数组初始化一下
      

  2.   

    for (int i=1;i!='\0';++i)为什么终止条件是i!='\0'?
      

  3.   

    int s[1000],t;
    m_e1.GetWindowTextW(LPTSTR(s),1000);
    ------------------------------------
    还有这句?LPTSTR(s);s还是int[]???
    下面的SetWindowTextW()也是
      

  4.   

    嘿嘿,我第一次用这个函数嘛..如果不加那个调试的时候就是
    不能将参数 1 从“int [1000]”转换为“LPTSTR” 其实我也不是很知道LPTSTR是干嘛的...
      

  5.   

    输入的数据格式是怎样的?
    1 2 3 4这样?
    LZ你以为GetWindowTextW就能把数据放进int数组里...?错了吧
      

  6.   

    一般情况下界面线程Post了退出消息,自己就可以退了啊?
    还等工作线程干什么?
      

  7.   

    int s[1000],t;
    m_e1.GetWindowTextW(LPTSTR(s),1000);
    ===========
    这个代码真的让人看不明白,int数组强制转成LPTSTR?你的目的是什么呢?