1、void main ()
{
 char *x=0;
char *y =0;
{
char x = "123456";//这是一个函数体,我简化了
}
cout << x << '\t' << y << endl;
}
调试出现这个错误:
Unhandled exception in **.exe(MSVCRTD.DLL):0xc0010005:Access Violation.2、我在调试出现了这个提示框:Can't trace into system Dlls;这是为什么?
请赐教!!!
谢谢!!!

解决方案 »

  1.   

    1. 函数体内char x只分配了一个字符的空间,怎么存储"123456"? 
    2. 代码运行到系统的dll,你跟踪不进去了。
      

  2.   

    1.char *x = "123456";
    2.和一楼一致
      

  3.   

    先 char *x=0; 然后没有付值给x,这时 x 是一个 NULL 指针。
    {
    char x = "123456";//这是一个函数体,我简化了
    }
    有问题,char x 表示一个字符变量,不是字符串,不能把字符串直接赋值给他。
      

  4.   

    不好意思我的函数体写错了。很soorry!!!1、void main ()
    {
     char *x=0;
    char *y =0;
    {
    x = "123456";//这是一个函数体,我简化了
    }
    cout << x << '\t' << y << endl;
    }
    我已经给y初始化了,为什么输出y出现运行错误?
    调试出现这个错误:
    Unhandled exception in **.exe(MSVCRTD.DLL):0xc0010005:Access Violation.第二个问题我是想为什么会这样?
      

  5.   

    y = NULLcout << y;试图访问一个NULL指针指向的内存区域.
    因为系统将每个进程的前4K区域做为NULL指针区. 相关资料可以参考<<windows核心编程>>