美文网首页
[C指针]安全使用指针

[C指针]安全使用指针

作者: AkuRinbu | 来源:发表于2019-04-18 15:34 被阅读0次

学习笔记

《深入理解C指针》
http://www.ituring.com.cn/book/1147
第7章 安全问题和指针误用

安全使用指针

类型定义

类型定义代替宏定义是另一个好习惯。类型定义允许编译器检查作用域规则,而宏定义不一定会。

typedef int* PINT;
PINT ptr1, ptr2;
  • 两个变量均被声明为整数指针。

检查返回值

malloc这类函数时一定要检查返回值,否则可能会导致程序非正常终止。下面说明一般的方法:

float *vector = malloc(20 * sizeof(float));
if(vector == NULL) {
    // malloc分配内存失败
} else {
    // 处理vector 
}

星号

在原声明int *pi = &num中,星号把变量声明为指针,而不是解引操作。

传递数组长度

将数组传递给函数时,一定要同时传递数组长度。这个信息帮助函数避免越过数组边界。

int buffer[20];
int *pbuffer = buffer;
for(int i=0; i<sizeof(buffer); i++) {
    *(pbuffer++) = 0;
}
  • sizeof(buffer)表达式返回了80
  • sizeof(buffer)/sizeof(int)来避免这个问题

相关文章

  • [C指针]安全使用指针

    学习笔记 《深入理解C指针》http://www.ituring.com.cn/book/1147第7章安全问题和...

  • C语言05- 指针

    C语言05- 指针 13:指针 指针是C语言中的精华,也是C语言程序的重点和难点。 13.1:指针定义与使用 指针...

  • 面经——指针和引用的区别

    为什么使用指针 每一个编程语言都使用指针C++将指针暴露给程序员,而Java和c#将指针隐藏起来。 使用指针的优点...

  • 在Swift中使用C语言的指针

    在Swift中使用C语言的指针 在Swift中使用C语言的指针

  • 智能指针

    指针的危害 指针未初始化 野指针 内存泄漏 参考阅读C/C++指针使用常见的坑 智能指针分类 本质:将指针封装为类...

  • Golang 指针

    指针 区别于C/C++中的指针,Go语言中的指针不能进行偏移和运算,是安全指针。Go语言当中的指针涉及到三个点:指...

  • [初学C++]浅谈C C++引用和指针的联系和区别

    为什么C/C++语言使用指针? ①一方面,每一种编程语言都使用指针。不止C/C++使用指针。每一种编程语言都使用指...

  • C语言

    C 指针、指针变量、函数指针、指针函数、指针数组、数组指针、C 数组

  • C语言 - 中

    总目录 前言 本文介绍C语言的指针:一、指针介绍二、指针使用三、数组指针和指针数组 函数指针和指针函数 环境 1...

  • 特殊数据类型

    指针 GO 语言像 C 一样有指针,可以通过指针访问数据,但是 GO 的指针要安全的多: 首先,访问空指针会直接报...

网友评论

      本文标题:[C指针]安全使用指针

      本文链接:https://www.haomeiwen.com/subject/tvktgqtx.html