1、分配内存
1. malloc()函数
void *malloc(unsigned int size);
//功能:分配长度为size字节的内存块
//当不再使用的时候,使用free()释放
//分配成功,返回指向被分配内存的指针;否则返回空指针NULL
例子:
void main(){
long *buffer;
buffer = (long*)malloc(400); //获得一块长整型的数组空间
free(buffer); //释放内存空间
}
2. colloc()函数
void *calloc(unsigned n, unsigned size);
//功能:在内存的动态区存储中,分配n个长度为size的内存块。可以为一维数组开辟空间。
//当不再使用的时候,使用free()释放
//分配成功,返回指向被分配内存的指针;否则返回空指针NULL
例子:
void main(){
long *buffer;
buffer = (long*)calloc(20, sizeof(long)); //获得一块长整型的数组空间
free(buffer);
}
3. realloc()函数
void *realloc(void *mem_address, unsigned int newsize);
//功能:调整mem_address指针所指向的内存区域大小为 newsize长度。
//当不再使用的时候,使用free()释放
//分配成功,返回指向被分配内存的指针;否则返回空指针NULL
当mem_address
指向Null
时,realloc
= malloc
当newsize
等于0时,realloc
= free
4. memset()函数
void *memset(void *s, char ch, unsigned n);
//功能:设置s指向的内存,所有字节为ch,s数组的大小为n
例子:
#include <string.h>
#include <stdio.h>
int main(void){
char s[] = "welcome to mrsoft\n"; //定义一个字符数组s
printf("s before memset: %s\n", s); //输出字符数组中的内容
memset(s, '*', strlen(s)-1); //设置s数组中的字符串内容为*
printf("s after memset: %s\n", s);
return 0;
}
2、释放内存
void free(void *membolock);