请在 下方输入 要搜索的题目:

可以交换两个数的函数定义为:void swap(int *p,int *q){ int *temp;*temp=*p;*p=*q;*q=*temp;}


A、正确;
B、错误

发布时间:2025-05-23 20:58:56
推荐参考答案 ( 由 快搜搜题库 官方老师解答 )
联系客服
答案:错误 【分析】:swap传递的了一个地址,函数中的形参p、q是指向实参数a、b的两个指针。但这里的语句 int *temp; *temp=*p; 是错误的,原因是: int *temp 新建了一个指针但未分配内存。 *temp=*p 并非指向而是拷贝,即将*p所指向的内存的值(a的值)拷贝到*temp所指内存。但 int *temp 是不分配内存的,于是系统在拷贝时临时给一个随机地址存值。所分配的随机地址是无法预期的,且在函数运行结束后也不回收,造成内存泄漏。
专业技术学习
专业技术学习
搜搜题库系统