none
关于vs2005的 编译器在编译文件时编译器内部出现错误的问题 RRS feed

  • 问题

  • 问题的描述:
    我编译一个程序时报出了编译器内部出现问题了,很是诧异,望你们给予答复,同时对你们的编译器做一次优化,加强语法校验.
    错误提示:
    1>e:\workspace\temppointer\temppointer\1.cpp(42) : fatal error C1001: An internal error has occurred in the compiler.
    1>(compiler file 'f:\rtm\vctools\compiler\utc\src\P2\ehexcept.c', line 977)
    1> To work around this problem, try simplifying or changing the program near the locations listed above.
    1>Please choose the Technical Support command on the Visual C++
    1> Help menu, or open the Technical Support help file for more information

    我的原代码是:
    #include <afx.h>
    #include <iostream>

    using namespace std;

    // 求二维数组中某一维的成员个数
    int funC(CString& temp);

    int main()
    {
     CString ss[][12] =
     {
      {"sd","fsffs","fsfs","2333",""},
      {"12345","1234566789","sss"},
      ""
     };
     int k = funC(ss[0]);
     cout<<"k is: "<<k<<endl;

     return 0;
     
    }


    int funC(CString temp[])
    {
     int k = 0;// 成员个数


     CString* pt = temp;
     
     while ( !(pt->IsEmpty()) && (k<12) )
     {
      pt++;
      k++;
     }


     return k;
    }

    原因是:CString ss[][12] =
     {
      {"sd","fsffs","fsfs","2333",""},
      {"12345","1234566789","sss"},
      ""
     };
    第三维写错了.
    疑问:为什么这个地方不报语法错误,而是报出编译器内部错误呢?望给与答复!

    2008年9月25日 11:15

答案

全部回复

  • 你好,

    在Debug模式下编译是否有同样问题?

    2008年9月27日 1:32
  • 你好,这就是在debug下编译时出现的错误,在release下也是这样的错误,我认为这个错误明显是语法错误,编译器应该报语法错误,但是编译器确内部崩溃出错了.为什么呢?莫非语法校验不严格,编译器无法识别吗?

    2008年9月28日 0:56
  •  

    C1001 一般是由于

    1添加了代码优化造成的

    You can probably fix the problem by removing one or more optimization options. To determine which option is at fault, remove options one at a time and recompile until the error message goes away. The options most commonly responsible are /Og, /Oi, and /Oa. Once you determine which option is responsible, you can disable it using the optimize pragma around the function where the error occurs and continue to use the option for the rest of the module.

    2VC编译器bug

    这个只能发bug票给微软了。

    不知道你用的什么IDE如果是VC6可以在VS2005或VS2008上试一下。因为微软已经停止了对VC6的服务支持。

     

    2008年9月28日 1:11
  •  splendour 写:

     

    C1001 一般是由于

    1添加了代码优化造成的

    You can probably fix the problem by removing one or more optimization options. To determine which option is at fault, remove options one at a time and recompile until the error message goes away. The options most commonly responsible are /Og, /Oi, and /Oa. Once you determine which option is responsible, you can disable it using the optimize pragma around the function where the error occurs and continue to use the option for the rest of the module.

    2VC编译器bug

    这个只能发bug票给微软了。

    不知道你用的什么IDE如果是VC6可以在VS2005或VS2008上试一下。因为微软已经停止了对VC6的服务支持。

     

     

     

    你知道如何联系他们吗 ?

    2008年9月29日 14:50
  • http://support.microsoft.com/gp/phonelist有相关的联系方式~或直接拨打电话800-820-3800
    2008年9月30日 2:45
    版主