c语言指针做函数参数,使用指针地址(二级指针)在被调函数中修改主调函数的指针。
来源:互联网 发布:e8光猫itv端口改成网口 编辑:程序博客网 时间:2024/05/21 09:47
1.代码
#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct { char *prive; int data;} T_Str;void copy_mem( char *dst){ strcpy(dst, "aa");}void copy_remalloc(char *dst){ dst=strdup("aaa");}void copy_remalloc_by_pointer(char **dst){ *dst=strdup("aaa");}void dump_str(T_Str str){ printf("----------->\n"); printf("str.data:=%d \n", str.data); if(str.prive){ printf("str.prive:=%s \n", str.prive); }else{ printf("str.prive has no data \n"); } printf("<-----------\n");}#define PRIVE_SIZE 16void test(){ T_Str str; memset(&str, 0, sizeof(T_Str)); str.prive=NULL; str.prive=(char *)malloc(sizeof(char)*PRIVE_SIZE); copy_mem(str.prive); dump_str(str); memset(&str, 0, sizeof(T_Str)); str.prive=NULL; copy_remalloc(str.prive); dump_str(str); memset(&str, 0, sizeof(T_Str)); str.prive=NULL; copy_remalloc_by_pointer(&str.prive); dump_str(str);}int main(int argc, char *argv[]) { test(); return 0; }
2.运行结果
----------->str.data:=0 str.prive:=aa <---------------------->str.data:=0 str.prive has no data <---------------------->str.data:=0 str.prive:=aaa <-----------
3.总结
其实很简单,要想给一个指针重新赋值,使它指向新的内存并修改,传入地址即可。和普通的二级指针一样,结构体同样符合c的规范。
阅读全文
0 0
- c语言指针做函数参数,使用指针地址(二级指针)在被调函数中修改主调函数的指针。
- 【C语言】二级指针,函数指针,回调函数
- 函数指针,函数指针数组,以及回调函数(函数指针做函数参数)
- c语言中一级指针和二级指针做函数参数
- x264中open_file_yuv函数欣赏(顺便谈谈如何利用指针在被调函数中改变主调函数中变量的值)
- C语言二级指针做函数参数改变该指针的指向
- C语言中函数指针、指针函数、回调函数的简单含义
- 指针与引用在主调函数和被调函数中的应用
- C语言指针笔记之 一级指针的应用(指针做函数参数)
- 函数指针,指针函数,指针的指针做函数参数
- c语言二级指针和函数指针
- 一级指针、二级指针做函数参数的区别
- C语言中使用函数指针构造回调函数的一个典型应用
- C语言中使用函数指针构造回调函数的一个典型应用
- 双指针: 如何在被调函数中改变主函数中指针的值?
- C语言中的回调函数(函数指针)
- 函数指针中的回调函数(C语言版本)
- 函数指针的使用--回调函数
- mybatis 使用collection标签实现一对多查询(多分页使用)
- ViewPager动画效果(一)
- fatfs文件系统使用描述
- hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有一个实体类与之对应如何解决?
- ajax的xmlHttpRequest请求
- c语言指针做函数参数,使用指针地址(二级指针)在被调函数中修改主调函数的指针。
- 669. Trim a Binary Search Tree
- HTTP状态码
- 全志R16平台tinav2.1系统下调通rtl8188eu(分色排版)
- 牛客原型链练习题(持续更新)
- emmc
- 8个值得模仿的明星穿搭,各个时尚有型
- heapq( Heap queue algorithm)库
- oracle创建数据库和用户