[2015KPMG毕马威笔试经验]先说一下我背景吧,我是上海复旦大学旁边的某个知名财经大学的学生,专业是工商管理,成绩一般般,在工商管理班是属于倒数的,不过放到年级上就是前30%的水平,所以填成绩排名时从来只...+阅读
中兴笔试问题指针出错,请指出这个程序里的不正确的地方
char *getString()
{
return (char*)malloc(800);
}
int main()
{
char *str;
str = getString();
pintf(%s,str);
return 0;
}
原来的参考答案:
错误在于:
在前面的函数中。malloc分出来的空间被放在了一个栈上面
主函数使用了这个函数后操作系统后弹出栈顶
也就是这块空间被shi放了(9分)
后面那个printf打印的本来是指向栈顶的那个地址的。。
但现在弹出了
所以不知道指到哪里去了
也不会得到自己想要的打印结果(9分)
个人认为:
这个根本就不是在栈上,而是在推上,用函数返回堆的地址,这是很常见的做法啊,大家可以参照高质量编程。
这个我觉得不会是中兴给的答案吧
感觉太水了。不知道大家看出来多少?
你的想法是正确的。
在一个函数中malloc一段内存,供另一个函数使用,没有任何问题。
msdn原文如下:
void *malloc(size_t size );
malloc returns a void pointer to the allocated space or NULL if there is insufficient memory ailable. To return a pointer to a type other than void, use a type cast on the return value. The storage space pointed to by the return value is guaranteed to be suitably aligned for storage of any type of object. If size is 0, malloc allocates a zero-length item in the heap and returns a valid pointer to that item. Always check the return from malloc, even if the amount of memory requested is small.
可见,分配是在堆上(heap),而不是在栈上。
但是,对于这段代码,有两个问题需要注意:
1。当内存不再使用时,应使用free()函数将内存块释放。其实,free这个函数大多人都会调用,但是free了并不代表完事了,一定要把指向这个堆空间的指针清空,这个题目里应使用str=NULL。
2。malloc只管分配内存,并不能对所得的内存进行初始化,所以得到的一片新内存中,其值将是随机的。这道题目,打印出来是乱码。需要自动初始化,可以使用calloc函数。
延伸阅读:
2015重庆移动校招笔试经验重庆移动重庆地区的校招终于是告一段落了,今天刚好闲下来,想想移动校招这一路走来,还是有所收获,自己也是从前辈的帖子获取了很多信息,所以在这里也跟大家分享下自己一路走来的经...
2015天职国际网测笔试经验我坐标南京,非211非965学校,投的也是南京所。一直很中意天职国际,实习的时候和天职是同一座大厦,那时候就很希望能去楼上工作,所以宣讲会的话特地从江宁跑去浦口去听,还算幸运,简历...
2015中国银行笔试经验分享今年中行笔试时间好早啊!是所有银行中最早的一个了,楼主之前准备了两个月,今天考完的感觉就是、、、都白看了= =超级难!好吧可能有些复习的好的觉得还行吧,废话不多说,直接上。...
衣恋2014笔试经验30日晚广州在中大笔试。 什么文具用品都不用带,现场会发(其实只有一支笔而已,要用修正带可以跟工作人员借)。 hr一上来就跟我们说,这次笔试非常难,甚至有人一道题都做不对什么的...
安永2014年笔试经验分享关于考几道 怎么考 时间巴拉巴拉的就不赘述了 就简单说一下我记得的题目吧 Verbal 比较多以下哪个正确或者以下哪个错误的题目 比较麻烦 难度递增 一篇文章2道题 1. GPS定位...
欢聚时代2017校招产品经理笔试经验今年的笔试是在华工五山校区举行的,风尘仆仆的从大学城赶过去啊!去了之后按照短信的通知找教室,教室里有笔试技术的也有笔试产品的,没有固定位置,但按照一列技术类一列非技术类...
中行2015校园招聘笔试经验我2014年11月1日下午1点30到4点30参加了中国银行2015校招笔试,上午在仙林南邮参加江苏电信笔试,2个小时的时间内赶到了江宁南医参加了中行的考试。以下是考试内容和时间段,都是...
百度2015软件开发工程师笔试题百度的题总体来说不难,都是一些基础的题。好像近几年都有这样的趋势,计算机网络,操作系统,数据库,每个基础课出一道题。接着是三道程序设计题。最后是系统设计题。所以好好看计算...
笔试的几个面试技巧笔试的几个面试技巧1.科学答卷拿到试卷后,首先应通览一追,了解题目的多少和难易程度,以便掌握答题的速度,然后根据先易后难的原则排出答题的顺序、先攻相对简单的题,后攻难题。这...