C语言学习教程(二十八)
在前两次的教程中,给大家分享了两道面试题,下面我来说一说我的看法。
看第一题:
这段代码的错误之处就是getMemory()函数的形式参数写错了,形式参数应该写成二级指针的形式,即写成char**p的形式,getMemory()函数的函数体也相应改变,在调用getMemory()函数的时候,把实际参数写成str,
为什么这么写呢?是因为想通过getMemory()函数来修改str的值,要想通过函数来修改外部变量的值,就必须把外部变量的指针传到函数里,因此str是char*类型,因此函数的形式参数就得是char**类型了,在调用getMemory()函数的时候,就得传str的地址,即str了。
接着看第二题:
其实讲,这段代码没有发生内存泄漏,何为“内存泄漏”,是指在程序运行时,申请的空间在使用完毕后,长期没有释放,导致操作系统中可用的内存越来越少,发生“泄漏”现象,在上面的代码中,在申请了空间之后,程序很快就结束了,没有发生泄漏。
学习是枯燥的,但是我始终坚定的认为,如果我们把C语言掌握得很透彻,不管以后我们学什么语言,都会感觉到很轻松,语言都是想通的,当然了,学习也不可能一蹴而就,每天都坚持学习就行了,学而不已,阖棺乃止。
赞赏
人赞赏
白癜风怎么诊断治疗症狀最好治疗白癜风的药