避免野指针的方法

1 定义指针变量的时候,指针变量赋值成NULL

2 释放的时候,判断是不是NULL

3 释放完毕以后再赋值成NULL

结构体小细节

typedef struct _Teacher{   char name[64];//64int age;//4char tile[128];//128char c;//1
}Teacher,*pTeacher;

以上定义了一个结构体变量,结构体变量所占字节数理论上应该是197(64+4+128+1)

void main()
{Teacher t;printf("%d \n", sizeof(t));//...........输出200system("pause");
}
用sizeof计算发现所占字节数是200,并不是197,这里需记住以下结论。

结论:结构变量内存四字节存放。

两个结构体变量之间可以copy数据(=),这个是c编译器给我提供的行为,我们要顺从,提供的是浅copy。

注意浅copy和深copy之间的关系

void copyObj01(struct  Teacher from, struct  Teacher to)
{memcpy(&to, &from, sizeof(struct  Teacher));
}void  copyObj02(struct  Teacher *from, struct  Teacher *to)
{memcpy(to, from, sizeof(struct  Teacher));
}
//深copy 浅copy
void  copyObj03(struct  AdvAdvTeacher *from, struct  AdvAdvTeacher *to)
{memcpy(to, from, sizeof(struct  AdvAdvTeacher)); to->a_name = (char *)malloc(128);strcpy(to->a_name, from->a_name);
}

避免野指针的方法及结构体小细节相关推荐

  1. C语言笔记含源码(变量、输入输出、分支、循环、函数、数组、指针、字符串、结构体)小总结

    文章目录 一.变量与输入输出 二.分支语句 三.循环 四.函数 五.数组 六.指针 七.字符串 八.结构体 一.变量与输入输出 定义变量需要:类型.变量名.变量值(可有可无) #include < ...

  2. C语言函数怎么像python那样返回多个值?(三种方法:1、设置全局变量 2、传递指针 3、使用结构体返回不同类型的数据)

    引用文章:c语言函数可不可以返回多个值 文章目录 方法一:设置全局变量 例如:利用一个函数求出正方形的周长和面积. 方法二:使用数组名或指针作为函数的形参 实例2:编写函数求一维整形数组的最大值与最小 ...

  3. 【精华文】C语言结构体特殊情况分析:结构体指针 / 基本数据类型指针,指向其他结构体

    参考链接:Structure pointer pointing to different structure instance 注:可以查看此篇的问题和唯一的回复,那是相对正确的,不要看comment ...

  4. Golang——结构体创建与初始化、结构体与数组、结构体与切片、结构体与map、结构体作为函数参数、结构体方法、结构体方法继承

    结构体: 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合 结构体可以很好的管理一批有联系的数据,使用结构体可以提高程序的易读性,类似于Java的类一样 不能在结构体直接赋值 字段名必须唯一 ...

  5. C语言指针结构体详解,结构体指针,C语言结构体指针详解

    结构体指针,可细分为指向结构体变量的指针和指向结构体数组的指针. 指向结构体变量的指针 前面我们通过"结构体变量名.成员名"的方式引用结构体变量中的成员,除了这种方法之外还可以使用 ...

  6. 指针及其应用4——结构体指针

    结构体指针的定义与使用  当一个指针变量用来指向一个结构体变量时,称之为结构体指针变量. 结构体指针变量的值是所指向的结构体变量的起始地址.通过结构体指针即可访问该结构体变量,这与数组指针和函数指针的 ...

  7. c语言结构体指针详解,结构体指针,C语言结构体指针详解

    结构体指针,可细分为指向结构体变量的指针和指向结构体数组的指针. 指向结构体变量的指针 前面我们通过"结构体变量名.成员名"的方式引用结构体变量中的成员,除了这种方法之外还可以使用 ...

  8. 结构体指针变量含义,结构体指针函数

    最近在STM的GPIO结构体定义中看到源代码的时候,顺便复习下结构体指针变量的定义及typedef 的使用. 1.结构体类型定义 定义方式1: Typedef struct LNode { int d ...

  9. c语言如何将值赋给结构体指针,C语言给结构体指针赋值

    <C语言给结构体指针赋值>由会员分享,可在线阅读,更多相关<C语言给结构体指针赋值(6页珍藏版)>请在人人文库网上搜索. 1.指向结构体的指针 在C语言中几乎可以创建指向任何类 ...

最新文章

  1. linux禁止路由器,FCC 新规可能禁止在 WiFi 路由器安装 OpenWRT
  2. 一个递归函数的漏洞及优化
  3. 在php的yii2框架中整合hbase库
  4. 为对象分配内存TLAB
  5. Python优雅地可视化数据
  6. 手写tomcat监控工具---宕机重启
  7. (转)Bootstrap 之 Metronic 模板的学习之路 - (3)源码分析之 body 部分
  8. HDU 3081Marriage Match II(二分法+并检查集合+网络流量的最大流量)
  9. 行政区划信息抽取算法(区划抽取)
  10. WINDOWS游戏编程学习笔记(一):Hello Game!
  11. 室内定位常用方法总结
  12. Excel2010创建包含数据有效性的xls文件,再打开时有效性变无效
  13. c#精华网站收集(转摘自梅川酷子的博客)
  14. 验证码识别逻辑回归案例
  15. 电子招投标系统源码之了解电子招标投标全流程
  16. RNA 10. SCI 文章中基因表达富集之 KEGG 注释
  17. Minecraft 1.16.5模组开发(五十三) 多种生物类型(Variant)
  18. SK hynix announces 96GB DDR5 CXL 2.0 memory expansion solution【搬运外媒VedioCardz报道(手工翻译)】
  19. fastreport中列宽固定,根据字段内容多少自动调整行高?
  20. 【竞赛篇-新苗结题】新苗拿什么结题?新苗结题成果形式与结题验收书撰写

热门文章

  1. 描述:给出若干个数,将数字存储在数组中,然后使用插入排序,按照升序排列出输出数字。输入一个整数n表示有n个数,接着输入这n个数。按照升序输出这n个数。输入输出示例:输入:53 2
  2. [debug+Python] 复制字典不能直接用 ‘=’,要用dict_name.copy()
  3. [PyTorch] 记录一次PyTorch版本更新
  4. 记2020年秋季学期的微波期末考试
  5. fpga与三八译码器(BASYS3 VIVADO18)
  6. anaconda查看删除增加镜像源
  7. 1.Web前端之CSS3中3D立方体以及3D轮播图
  8. WebPack 简明学习教程
  9. JQ简单二级导航,加子导航栏
  10. 关于div布局中float的使用