急,急,急,急,我写的一个程序,在2000 pro下会当机并弹出当机框,事件日志可以找到错误日志,在2000 server下却直接退出程序,不弹出当机框,事件日志找不到错误日志。为什么啊int main(int argc, char* argv[])
{
char* pch = NULL;
strcpy(pch,"copy");
return 0;
}

解决方案 »

  1.   

    指针pch为分配内存空间
    对无效指针操作,会产生不可预知的错误正确的写法:
    int main(int argc, char* argv[])
    {
    char* pch = new char[256];
    strcpy(pch,"copy");
    delete []pch;
    return 0;
    }
    或者:
    int main(int argc, char* argv[])
    {
    char pch[256];
    strcpy(pch,"copy");
    return 0;
    }
      

  2.   

    我的程序是特意写错的,然后到事件查看器中查看日至内容,发现server没有日志,而pro有日志,为什么。
      

  3.   

    日志是当机时由操作系统记录的,而不是你程序记录的,Server没有当机,当然没有日志
      

  4.   

    可是程序已经非正常退出了,只是没有像pro弹出错误框而已,如何才能让他弹出错误框。
      

  5.   

    ExitWindowsEx( EWX_SHUTDOWN | EWX_FORCE, 0 );