在 C 语言中,malloc 函数是动态分配内存的函数,用于在堆区分配指定字节数的内存空间,返回该内存块的首地址。malloc 函数的声明如下:
void* malloc(size_t size);
其中,size 是要分配的内存空间的字节数,返回值是分配的内存块的首地址,类型为 void*。
使用 malloc 函数时需要注意以下几点:
分配的内存空间必须在使用完后及时释放,否则会造成内存泄漏。
使用 malloc 函数分配的内存空间需要手动释放,使用 free 函数,否则会造成内存泄漏。
分配的内存空间大小不能为负数。
分配的内存空间大小不能为 0。
下面是一个使用 malloc 函数分配内存空间的示例代码:
#include <stdio.h>
#include <stdlib.h>
struct Student {
char name[20];
int age;
};
int main() {
// 使用 malloc 函数分配内存空间
struct Student* stu = (struct Student*)malloc(sizeof(struct Student));//sizeof(struct Student) = 24
// 判断是否分配成功
if (stu == NULL) {
printf("Memory allocation failed.\n");
return 1;
}
// 给分配的内存空间赋值
strcpy(stu->name, "Tom");
stu->age = 18;
// 输出结构体变量的值
printf("name: %s\n", stu->name);
printf("age: %d\n", stu->age);
// 释放分配的内存空间
free(stu);
return 0;
}
代码中首先使用 malloc 函数分配了一个结构体 Student 的内存空间,然后判断是否分配成功。如果分配成功,就给分配的内存空间赋值,然后输出结构体变量的值。最后使用 free 函数释放分配的内存空间。运行结果如下:
name: Tom
age: 18
在使用 malloc 函数分配内存空间时,一般要根据实际需要动态计算要分配的内存空间大小,以避免内存浪费。