通过函数申请内存的两个函数剖析(malloc函数讲解)
来源:互联网 发布:德州扑克辅助软件 编辑:程序博客网 时间:2024/06/05 20:48
程序一:不能完成内存申请的函数
voidGetMemory(char *p)
{
p=(char*)malloc(100);
}
voidmain()
{
char*str=NULL:
GetMemory(str);
strcpy(str,"HelloWorld");
printf("%s",str);
}
//此程序会奔溃,因为内存并没有动态传递,具体原理图如下:
程序二:利用一级指针申请内存的函数
char *GetMemory(char*p,unsignedintNum)
{
p = (char*)malloc(sizeof(char)*Num)
returnp;
}
int main(void)
{
char *str= NULL;
str = GetMemory(str,100);
strcpy(str,"world");
return 0;
}
原理解释:
现在返回的是_str所指向的内存块,所以str所指向的内存块为100个字节的内存块
函数三:利用二级指针申请内存函数char *GetMemory(char ** p,unsignedint Num)
{
*p = (char*)malloc(sizeof(char)*Num)
}
int main(void)
{
char *str= NULL;
str = GetMemory(&str,100);
strcpy(str,"world");
return 0;
}
0 0
- 通过函数申请内存的两个函数剖析(malloc函数讲解)
- request_mem_region 申请内存函数讲解
- request_mem_region 申请内存函数讲解
- 对通过函数申请内存的理解
- 动态内存申请函数选择(realloc、malloc 、alloca、 calloc)
- 动态内存申请函数选择(realloc、malloc 、alloca、 calloc)
- malloc函数申请内存失败,返回空NULL(0)
- 申请内存的函数
- 申请动态内存——malloc()函数及其扩展函数
- malloc函数申请0字节的问题
- 动态分配内存malloc()函数
- c++ malloc/free、new/delete 内存申请函数比较
- [简记]内核中申请内存和用户空间中申请内存的函数(kmalloc/vmalloc/malloc)对比
- 内存操作函数: malloc
- 动态分配内存malloc函数
- malloc、calloc、realloc函数剖析
- C内存申请函数
- 内存申请函数
- Express中method-override模块详解(一): 使用
- iOS - 正则表达式判断邮箱、身份证..是否正确
- maven之profile
- ArcMap——浏览地图
- 线性表实验
- 通过函数申请内存的两个函数剖析(malloc函数讲解)
- Andriod中的依赖注入
- 11111 - Generalized Matrioshkas
- 【Arduino】SD卡模块
- leetcode - Jump Game
- [转] linux下svn常用指令
- thinkphp模板的一个问题
- android 虚拟菜单出不来的解决方法。
- hadoop面试题答案