malloc函数

C语言中,使用malloc函数向内存中动态申请空间。

函数的原型是extern void *malloc(unsigned int num_bytes);

可见,函数返回的是指针类型,参数是要申请的空间的大小。

例如,我们在申请一个Node节点的时候。

#include<stdio.h>
#include<stdlib.h>
typedef struct
{
    int num;
    struct Node *next;
}Node;
int main()
{
    Node *newNode;
    newNode = (Node *)malloc(sizeof(Node));
    newNode->num=999;
    printf("%d",newNode->num);
    return 0;
}

  定义了一个节点指针,动态申请Node大小的内存空间,将返回的指针强制转化为Node型的,这样就完成了节点指针的创建。这种创建方式比较灵活,当我们不需要当前这个Node的时候,我们可以重新让其指向另一个节点。

  而如果直接声明的时候,Node类型节点就固定了,知道离开作用域。

  同时,取变量的时候,用结构体变量直接取分量,用“.”,用指向结构体的指针取分量的时候,用“->”,也可以用(*newNode).num取变量,这两个是等价的。注意括号,否则编译不能通过。

时间: 2024-12-28 20:54:26

malloc函数的相关文章

free函数和malloc函数

初学c和数据结构是对其很不明确,通过一些资料,稍微理解了,所以记下以后复习之用,如果有错误或者理解不当的情况请指正,不胜感激. 一malloc和free函数 malloc函数:(void*)malloc(sizeof(byte)),向系统申请大小的空间,然后返回指向这个内存的指针.如果内存分配失败,则返回一个空指针(NULL)当然,造成内存分配失败的吗原因有很多,其中一个是内存不足. 而free就是把这个操作空间返回给系统,释放这块内存.具体代码使用情况很简单 1 #include<stdio.

malloc函数用法

malloc函数用法 函数声明(函数原型): void *malloc(int size); 说明:malloc 向系统申请分配指定size个字节的内存空间.返回类型是 void* 类型.void* 表示未确定类型的指针.C,C++规定,void* 类型可以强制转换为任何其它类型的指针. 从函数声明上可以看出.malloc 和 new 至少有两个不同: new 返回指定类型的指针,并且可以自动计算所需要大小.比如: int *p; p = new int; //返回类型为int* 类型(整数型指

malloc函数具体解释

一.原型:extern void *malloc(unsigned int num_bytes); 头文件:#include <malloc.h> 或 #include <alloc.h> (注意:alloc.h 与 malloc.h 的内容是全然一致的.) 功能:分配长度为num_bytes字节的内存块 说明:假设分配成功则返回指向被分配内存的指针,否则返回空指针NULL. 当内存不再使用时,应使用free()函数将内存块释放. 举例:#include<stdio.h>

malloc函数详解

一.原型:extern void *malloc(unsigned int num_bytes); 头文件:#include <malloc.h> 或 #include <alloc.h> (注意:alloc.h 与 malloc.h 的内容是完全一致的.) 功能:分配长度为num_bytes字节的内存块 说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL. 当内存不再使用时,应使用free()函数将内存块释放. 举例: #include<stdio.h&g

malloc 函数详解

很多学过C的人对malloc都不是很了解,知道使用malloc要加头文件,知道malloc是分配一块连续的内存,知道和free函数是一起用的.但是但是: 一部分人还是将:malloc当作系统所提供的或者是C的关键字,事实上:malloc只是C标准库中提供的一个普通函数 而且很多很多人都对malloc的具体实现机制不是很了解. 1,关于malloc以及相关的几个函数 #include <stdlib.h>(Linux下) void *malloc(size_t size);        voi

传智播客视频学习 ----&gt;&gt;&gt;&gt; malloc() 函数的作用

C语言中的申请内存空间的函数 malloc() char *p = NULL; p = (char *)malloc( sizeof(char) * 100 ); 以上代码的含义是: 定义一个 char型 的 指针p 通过malloc函数给 指针p所指向的内存空间分配大小 p是内存地址 sizeof是获取char占用多少字节,一般是4个字节 malloc函数是void*函数 ( void * __cdecl malloc(_In_ _CRT_GUARDOVERFLOW size_t _Size)

c realloc函数和malloc函数

realloc 原型:extern void *realloc(void *mem_address, unsigned int newsize); 用法:#include <stdlib.h> 有些编译器需要#include <alloc.h> 在C++环境中,使用#include<iostream> using namespace std;功能:改变mem_address所指内存区域的大小为newsize长度. 说明:如果重新分配成功则返回指向被分配内存的指针,否则返

sizeof运算符、malloc函数及free函数

一.sizeof运算符的用法 1.sizeof运算符给出某个类型或变量在内存中所占据的字节数. int a;  sizeof(a)=4;  //sizeof(int)=4; double b;  sizeof(b)=8;  //sizeof(double)=8; 2.数组的sizeof值等于数组所占用的内存总字节数. 如:char a[] = "yes";  sizeof(a);  // 结果为4,字符末尾还存在一个NULL终止符 int a[3];  sizeof(a);  // 结

C语言中malloc函数的简介

malloc函数 (1)解释malloc函数作用 malloc的全称是memory allocation,中文叫动态内存分配. malloc函数是想系统申请分配指定size个字节的内存空间.malloc的返回类型是void*类型.void*表示为确定类型的指针.C/C++规定void*类型可以强制转换为任何其它类型的指针. (2)全名 void * malloc(size_t size); (3)原型 extern void *malloc(size_t size); (4)头文件 #inclu