关于调用子函数给主函数指针分配内存
来源:互联网 发布:cacti windows 中文版 编辑:程序博客网 时间:2024/05/17 18:02
典型的错误例子如下
在这个主函数的指针给子函数传递一个指针,而在子函数中形参有开辟了一块内存,此子函数的指针的内存里存储的地址与主函数是同一地址,
即主函数的指 针和子函数形参的指针都指向同一块内存的地址,但是在子函数里,为子函数的指针申请了一块空间,并不影响主函数的指针。
因为子函数的指针又指向了别的内 存。要想分配成功就得用下面两个例子。一个是在子函数的形参中第一指向指针的指针即二级指针,
叫子函数的指针指向实参的指针,另外一种方法就是返回子函数 分配完内存的指针。
失败的例子
#include<stdio.h>#include<stdlib.h>#include<string.h>fen_pei(char *p,int n){p=(char *)malloc(n*sizeof(char *));if(p==NULL){ printf("allocation failture\n"); exit(0);}}int main(){char *str1=NULL;fen_pei(str1,10);strcpy(str1,"hello"); printf("%s\n",str1); return 0;}成功的方法1,返回分配内存的指针
#include<stdio.h>#include<stdlib.h>#include<string.h>char *fen_pei(char *p,int n){p=(char *)malloc(n*sizeof(char *));if(p==NULL){ printf("allocation failture\n"); exit(0);}return p;}int main(){char *str1=NULL;str1=fen_pei(str1,10);strcpy(str1,"hello"); printf("%s\n",str1); return 0;}成功的方法2.,在子函数形参中使用指向指针的指针
#include<stdio.h>#include<stdlib.h>#include<string.h>void fen_pei(char **p,int n){*p=(char *)malloc(n*sizeof(char *));if(p==NULL){ printf("allocation failture\n"); exit(0);}}int main(){char *str1=NULL;fen_pei(&str1,10);strcpy(str1,"hello"); printf("%s\n",str1); return 0;}
0 0
- 关于调用子函数给主函数指针分配内存
- 关于调用子函数给主函数指针分配内存
- 关于调用子函数给主函数指针分配内存
- 关于子函数给主函数指针分配内存
- 关于调用子函数给主函数指针分配内…
- 一级指针,二级指针在函数调用传址问题。在子函数中分配内存。
- 在函数调用/子函数中进行动态内存的分配
- 字符串,指针,内存分配,函数调用
- 子函数中的内存分配(二级指针的应用)
- 子函数中为调用者分配内存的一些理解
- 子函数中为调用者分配内存的一些理解
- 关于子函数内存分配和链表的一点随笔
- 关于使用子函数里分配的内存的一个体会
- 关于子函数调用
- 函数调用子函数,注意子函数的位置
- 指针函数&内存分配 C
- 指针在子函数中分配空间若干问题
- Delphi 的内存操作函数(3): 给结构体指针分配内存
- iOS完整学习路线
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- Dubbo框架初探【用Spring配置声明暴露服务(可以使用multicast广播注册中心暴露服务地址或者使用zookeeper注册中心暴露服务地址)、加载Spring配置,启动服务】
- 【OpenCV入门教程之五】 分离颜色通道&多通道图像混合
- inspect相关
- 关于调用子函数给主函数指针分配内存
- 【OpenCV入门教程之六】 创建Trackbar & 图像对比度、亮度值调整
- hdoj 2435 There is a war 【求原图最小割已经分成的两个点集 + 枚举两点集里面的点建新边 求残量网络的最大最小割】
- Mac移动硬盘分区无法装载
- NSURLConnection探究
- 存储快照常见实现方式
- 【OpenCV入门教程之八】线性邻域滤波专场:方框滤波、均值滤波与高斯滤波
- LeetCode(263)Ugly Number
- qt mac 使用libusb