|
|
51CTO旗下网站
|
|
移动端

1.12.4 其他

《程序员面试笔试真题与解析》本书针对当前各大 IT企业面试笔试中特性与侧重点,精心挑选了 3年以来近百家典型 IT企业的面试笔试真题,这些企业涉及业务包括系统软件、搜索引擎、电子商务、手机 APP、安全关键软件等,面试笔试真题非常具有代表性与参考性。本节为大家介绍其他。

作者:猿媛之家来源:机械工业出版社|2017-12-06 17:36

1.12.4 其他

【真题 189】 sprintf函数和 snprintf函数的区别是()。

答案:首先给出两个函数的原型:

1)int sprintf(char *str, const char *format, ....)

2)int snprintf(char *str,size_t size, const char *format, ....)

其中,sprintf函数为字符串格式化函数,主要功能是把格式化的数据写入某个字符串中。而 snprintf函数是 sprintf函数的限制字符数量的一个表达,它昀多从源串中复制 size-1个字符到目标串中,然后,在后面加一个结束符 ‘\0’,如果执行成功,就返回源串的长度,否则,返回负值。

通过上面的分析可知,两者都是把源串拷入目标串,但使用 snprintf函数能够防止字符串 str的内存越界问题,使用更安全。

【真题 190】 VC++的编译器中,运算符 new底层的实现是()。

A.VirtualAlloc()  B.HeapAlloc() C.GlobalAlloc() D.AllocateUserPhysicalPages()  答案:B。对于选项 A,VirtualAlloc的功能是在调用进程的虚地址空间,预定或者提交一部分页。如果用于内

存分配的话,并且分配类型未指定 MEM_RESET,则系统将自动设置为 0。所以,选项 A错误。对于选项 B,HeapAlloc用来在指定的堆上分配内存,并且分配后的内存不可移动。所以,选项 B正确。对于选项 C,GlobalAlloc简称全局堆分配,用于从堆中分配一定数目的字节数。 Win32内存管理器并不

提供相互分开的局部和全局堆。提供这个函数只是为了与 16位的 Windows相兼容。所以,选项 C错误。对于选项 D,AllocateUserPhysicalPages用于分配需要的物理内存。所以,选项 D错误。所以,本题的答案为 B。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

一目了然——Web软件显性设计之路

本书阐述了为什么以及如何设计出简单易用的基于Web的软件,让用户单凭常识即可有效地使用它。主要内容包括:显性设计的概念、如何理解用户...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊