社区
C语言
帖子详情
一道malloc的面试题,大家帮忙看看
nuclears
2005-08-01 05:11:23
去一家公司面试。有一道面试题是这样的:要求分配11个字节的空间,是个填空题:
……malloc(________);
前面的我省略了,就是返回值什么的。
我不知道考这道题的具体用意是什么,我直接写了个“11”,不知道对不对。
谁能给我讲讲吗?malloc这个函数用的时候,申请的空间的长度有什么规则吗?
...全文
673
12
打赏
收藏
一道malloc的面试题,大家帮忙看看
去一家公司面试。有一道面试题是这样的:要求分配11个字节的空间,是个填空题: ……malloc(________); 前面的我省略了,就是返回值什么的。 我不知道考这道题的具体用意是什么,我直接写了个“11”,不知道对不对。 谁能给我讲讲吗?malloc这个函数用的时候,申请的空间的长度有什么规则吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xixiaboy
2005-08-02
打赏
举报
回复
对直接写11还要犹豫吗?
soft_biao
2005-08-01
打赏
举报
回复
直接11就可以了
hafent
2005-08-01
打赏
举报
回复
malloc(sizeof(byte)*11)
这个是奇数个字节,会不会要考虑内存对齐呀
malloc(sizeof(byte)*12)
jixingzhong
2005-08-01
打赏
举报
回复
晕 写完帖子上面就那么多人了 ...
jixingzhong
2005-08-01
打赏
举报
回复
char *s=(char*)malloc(11);
理论上是可以的
但是 malloc 前面的 东西没有给定
这么写也许会有问题的
可以这样
……malloc(sizeof(char)*11);
这样也有局限性
虽然现在的 char 一般都是一个字节
但是 也许会有意外发生
即使现在没有 也不能保证以后也没有 ...
ningzhiyu
2005-08-01
打赏
举报
回复
malloc是按byte为基本单位分配内存的。
直接11就应该可以了。
可以在网上搜索一下malloc看看,有很多解释的
PMsg
2005-08-01
打赏
举报
回复
Example
/* MALLOC.C: This program allocates memory with
* malloc, then frees the memory with free.
*/
#include <stdlib.h> /* For _MAX_PATH definition */
#include <stdio.h>
#include <malloc.h>
void main( void )
{
char *string;
/* Allocate space for a path name */
string = malloc( _MAX_PATH );
// In a C++ file, explicitly cast malloc's return. For example,
// string = (char *)malloc( _MAX_PATH );
if( string == NULL )
printf( "Insufficient memory available\n" );
else
{
printf( "Memory space allocated for path name\n" );
free( string );
printf( "Memory freed\n" );
}
}
benjiam
2005-08-01
打赏
举报
回复
sizeof(char)*11
everestsun
2005-08-01
打赏
举报
回复
char *s=(char*)malloc(11);
xuanwenchao
2005-08-01
打赏
举报
回复
……malloc(11);
zaisheng09
2005-08-01
打赏
举报
回复
11字节空间段的首地址。
fireman_lh
2005-08-01
打赏
举报
回复
BYTE[11]
一道
面试题
关于
malloc
的
面试题
【Linux从基础到进阶】
本文探讨了32位系统内存结构,虚拟内存大小、内存分配与释放,以及
malloc
过程。特别关注内存泄漏问题,以及为何大内存申请失败。通过实例分析了Linux虚拟内存机制和
malloc
行为。
[每天
一道
面试题
c++] Day15 new和
malloc
的区别?
本文详细对比了C++中new和
malloc
的区别,包括构造函数的调用、内存分配方式、内存管理、异常处理、内存扩容及重载等方面。new适用于对象的构造与析构,
malloc
则不涉及对象生命周期管理。new分配的对象需要使用delete释放,数组使用delete[],而
malloc
/free需要配合使用。new还可以重载以实现自定义内存管理,
malloc
则不可。
c
malloc
头文件_C/C++求职者必备 23 道
面试题
,
一道
试题一份信心!
本文详细阐述了C++中的Static、Const、This指针等基本概念,并对比了C与C++的区别,深入探讨了内联函数、引用与指针、链表与数组等数据结构的特点及应用场景。
一道
小小的内存申请
面试题
本文通过
一道
面试题
探讨了动态内存分配的问题。错误的做法是直接将
malloc
的结果赋值给指针,导致无法正确返回动态内存。正确的做法是传指针的指针,通过间接方式更新原始指针的值,从而确保动态内存的正确使用。
从
一道
面试题
(死循环里分配内存)阐述Linux的内存管理
本文通过
一道
面试题
探讨Linux32位系统中内存管理,解释了
malloc
在虚拟地址空间申请内存但未实际分配物理内存的现象,讨论了内核参数overcommit_memory对内存分配的影响,以及不同设置下程序可能的行为。并提供了相关参考资料。
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章