zoukankan      html  css  js  c++  java
  • C/C++动态分配内存

    C:malloc和calloc来分配内存:

    malloc函数原型

    void *malloc(unsigned int size)

    首先这是一个void 指针函数返回的是一个指向不定的指针,所以在调用这个函数的时候需要强转化为需要的指针类型。然后再在里面添加所需要开辟的空间大小

    例子:

    1 int * PI = NULL;
    2 
    3 PI = (int *)malloc(sizeof(int)); 

    calloc和malloc差不多,区别就是将大小划分了一下

    void *calloc(unsigned int num,unsigned int size);

    第一个参数表示要分配的个数,第二个参数表示每个个数的内存大小

    一般推荐使用calloc因为calloc可以将分配好了的初始化为0更加安全

    删除分配的内存:

    free函数来处理

    void *free(void *p)

    只需要把需要释放的内存放进free中就行了。

    重新分配内存:realloc()

    void *realloc(void *p,unsigned int size);

    作用是修改大小size,但是返回的是新分配的存储空间首地址,和原来的不一定相同。且只能通过指针变量引导,一旦指针指向修改,数据和内存就丢失 了。

    C++:

    采用new来打包处理

    例子:
    int *a = new int(10);

    删除时直接

    delete a;就行了

  • 相关阅读:
    Pytorch多进程最佳实践
    torchvision简介
    Pytorch数据变换(Transform)
    Pytorch自定义数据库
    DenseNet笔记
    Focal Loss笔记
    Pytorch数据读取框架
    二叉树的先序、中序、后序递归与非递归实现遍历
    Group Normalization笔记
    sap 怎么导出sap的各种表
  • 原文地址:https://www.cnblogs.com/beautiful7/p/13191338.html
Copyright © 2011-2022 走看看