再看看下面的一段程序有什么错误:swap( in

21 查阅
再看看下面的一段程序有什么错误:swap( int* p1,int* p2 ){int *p;*p = *p1;*p1 = *p2;*p2 = *p;}

参考答案:

正确答案:

\r\n

在swap函数中,p是一个“野”指针,有可能指向系统区,导致程序运行的崩溃。在VC++中DEBUG运行时提示错误“Access Violation”。该程序应该改为:
swap( int* p1,int* p2 )
{
 int p;
 p = *p1;
 *p1 = *p2;
 *p2 = p;
}

错误