野指针、malloc/new、free/delete

简介: 野指针、malloc/new、free/delete

如何避免野指针

强调1

在使用new操作符时会调用malloc去分配内存,分配内存之后回调构造函数去构造数据。但是对c语言来说没有这样的整套机制,所以需要对空间数据采用memset进行置空。

malloc、free与new、delete

强调2

  1. 操作符可以被重载,库函数是不可以重载的。
  2. deletefreee调用后内存不会立刻释放,只是告诉操作系统这块内存可以用作它途。

malloc、free 用法,以及如何释放指针操作

#include <iostream>
#include <cstring>
#include <stdlib.h>
#include <memory>
using namespace std;
int main(){
    typedef struct data_type {
        int age;
        char name[20];
    }data;
    data* bob;
    bob = (data*) malloc(sizeof(data));
    memset(bob, 0, sizeof(bob));  //置空
    if (bob != NULL) {
        bob->age = 22;
        strcpy(bob->name, "Robert");
        printf ("%s is %d years old\n", bob->name, bob->age);
    }
    free(bob);
    bob = nullptr;
    return 0;
}

充电站

推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习

相关文章
|
4月前
|
安全 编译器 C语言
深入了解C++:形参、内联、重载、引用、const和指针、new和delete
深入了解C++:形参、内联、重载、引用、const和指针、new和delete
34 1
|
存储 C++
指针(二)- C++内存模型、动态分配内存new和delete
指针(二)- C++内存模型、动态分配内存new和delete
173 0
指针(二)- C++内存模型、动态分配内存new和delete
|
C++
C++:delete不完整类型的指针
简单版 以下代码编译时会有warning: class X; void foo(X* x) { delete x; } 在GCC4.1.2下,编译出错信息是: warning: possible problem detected in invocation of delete oper.
2376 0
迷途指针 new delete
编程中有一种很难发现的错误是迷途指针。迷途指针也叫悬浮指针、失控指针,是党对一个指针进行delete操作后——这样会释放它所指向的内存——并没有把它设置为空时产生的。而后,如果你没有重新赋值就试图再次使用该指针,引起的结果是不可预料的。
974 0
|
C++
C++文件头,命名空间,new和delete,内联函数,引用,函数重载,构造函数和析构函数,深拷贝和浅拷贝,explict,this指针
   目  录 1       开始学习C++.............................................................................................................. 4 1.1       C++的头文件......................
1666 0
|
3月前
|
C语言
指针进阶(C语言终)
指针进阶(C语言终)
|
18天前
|
存储 人工智能 C语言
C语言程序设计核心详解 第八章 指针超详细讲解_指针变量_二维数组指针_指向字符串指针
本文详细讲解了C语言中的指针,包括指针变量的定义与引用、指向数组及字符串的指针变量等。首先介绍了指针变量的基本概念和定义格式,随后通过多个示例展示了如何使用指针变量来操作普通变量、数组和字符串。文章还深入探讨了指向函数的指针变量以及指针数组的概念,并解释了空指针的意义和使用场景。通过丰富的代码示例和图形化展示,帮助读者更好地理解和掌握C语言中的指针知识。
|
1月前
|
C语言
【C初阶——指针5】鹏哥C语言系列文章,基本语法知识全面讲解——指针(5)
【C初阶——指针5】鹏哥C语言系列文章,基本语法知识全面讲解——指针(5)