zoukankan      html  css  js  c++  java
  • malloc函数

    1.函数功能

    Malloc 向系统申请分配指定size个字节的内存空间。返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以强制转换为任何其它类型的指针

     2.函数原型

     extern void *malloc(unsigned int num_bytes);

    3.返回值

    如果分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。函数返回的指针一定要适当对齐,使其可以用于任何数据对象

    4.与new的区别

    (1)malloc 函数返回的是 void * 类型。

    (2)函数的实参为 sizeof(int) ,用于指明一个整型数据需要的大小

          int* p = (int *) malloc (1);
    
    代码也能通过编译,但事实上只分配了1个字节大小的内存空间,当你往里头存入一个整数,就会有3个字节无家可归,而直接“住进邻居家”!造成的结果是后面的内存中原有数据内容被改写。
    在Linux中可以有这样:malloc(0),这是因为Linux中malloc有一个下限值16Bytes,注意malloc(-1)是禁止的;但是在某些系统中是不允许malloc(0)的。在规范的程序中我们有必要按照这样的格式去使用malloc及free:
    type *p;
    if (NULL == (p = (type *)malloc(sizeof (type)))) 
  • 相关阅读:
    「学习笔记」min_25筛
    HNOI2019游记
    【SDOI2017】数字表格
    【APIO2016】烟火表演
    【SCOI2015】小凸想跑步
    java Thread源码分析
    java ThreadGroup源码分析
    bean获取Spring容器
    spring 管理bean
    thinkphp5.0.19 request
  • 原文地址:https://www.cnblogs.com/zhuzhudexiaoshijie/p/3343097.html
Copyright © 2011-2022 走看看