C语言中的二级指针做输出

一、二级指针做输入与输出

    做输入,主调函数分配内存,被调函数使用;做输出。被调函数分配内存,把运算的结果,以指针做函数参数甩出来。 

#define  _CRT_SECURE_NO_WARNINGS 
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

//求文件中的两段话的长度
//二级指针做输出,被调函数分配内存。
int GetMem(char **myp1, int *mylen1, char **myp2, int *mylen2)
{
	char *tmp1 =NULL, *tmp2 = NULL;
	tmp1 = (char *)malloc(100);   //在堆区分配内存,并使得tmp1指向这块内存的首地址。
	if (tmp1 == NULL)
	{
		return -1;
	}
	strcpy(tmp1, "asdfghjkl");
	*mylen1 = strlen(tmp1);      //通过指针间接修改实参的值。
	*myp1 = tmp1;

	tmp2 = (char *)malloc(100);
	if (tmp2 == NULL)
	{
		return -2;
	}
	strcpy(tmp2, "11122233333");
	*mylen2 = strlen(tmp2);
	*myp2 = tmp2;				//间接修改实参p1的值

	return 0;
}

//*二级指针做参数
void FreeMem(char **myp) 
{
	char *tmp = NULL;
	if (myp == NULL)
	{
		return -1;
	}
	tmp = *myp;
	free(tmp);
	*myp = NULL;
}

//一级指针做参数
v
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值