阅读以下说明、C函数和问题,将解答写入答题纸的对应栏内。
【说明1】
函数test fl (int m,int n)对整数m、n进行某种运算后返回一个整数值。
【C函数1】
int test_fl (int m, int n)
{ int k;
k=m>n?m:n;
for(;(k%m!=0)||(k%n!=0);k++);
return k;
}
刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
阅读以下说明、C函数和问题,将解答写入答题纸的对应栏内。
【说明1】
函数test fl (int m,int n)对整数m、n进行某种运算后返回一个整数值。
【C函数1】
int test_fl (int m, int n)
{ int k;
k=m>n?m:n;
for(;(k%m!=0)||(k%n!=0);k++);
return k;
}
函数test_f3()中的字符数组tstr在函数内部定义,其存储空间位于栈区。当函数test_f3()执行完毕后,栈区中的内存会被自动释放,因此返回的指向tstr的指针指向的内存空间可能已经被释放或是不稳定的,这样会导致程序出现错误。为了避免这种情况,可以使用动态内存分配的方式为tstr分配内存。使用calloc或malloc函数可以在堆区分配内存,这样分配的内存空间不会因为函数的结束而被自动释放,只有在程序员显式调用free函数时才会释放该内存空间。因此,修改后的代码可以使用动态内存分配的方式来处理返回的字符串。
本文链接:{问题3:函数test_f3()的返回值处理缺陷及修改方法}
版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!
