我在CLion中运行以下代码:
int main()
{
char amessage [] = "oafaojfpa";
char * pmessage = "oafaojfpa";
char * apmessage = amessage;
amessage[2]='X';
*(pmessage+2)='X';
printf(amessage);
printf("\n");
printf(pmessage);
printf("\n");
printf(apmessage);
return(0);
}
代码*(pmessage+2)='X';
应该引发异常。但是,输出是:
/Users/spacegoing/Library/Caches/CLion12/cmake/generated/1ab7f406/1ab7f406/Debug/TCPL_Learn
Process finished with exit code 10
CLion只说退出代码10.但我在哪里可以查看异常消息?
答案 0 :(得分:0)
只有c ++代码才会抛出异常。在这种情况下,您遇到了低级错误。您会看到C / OS返回值10,即BUS ERROR。
现在在x86上很少出现总线错误,并且当您的处理器甚至无法尝试请求的内存访问时发生错误,通常是:
指针pmessage指向字符串文字。此字符串存储在只读内存中,尝试修改此内存会导致未定义的行为。它通常是段错误或总线错误。