malloc使用模板:
#include <stdio.h>
#include <malloc.h>
int main()
{
int* p = (int*)malloc(5 * sizeof(int));
if (NULL != p)
{
//do something
}
free(p);
p = NULL;
return 0;
}
calloc:申请内存有类型信息,并都初始化为0,其它两个都是随机值。
realloc:
用法1.代替malloc。(第一个参数为0)
#include <stdio.h>
#include <malloc.h>
int main()
{
int* p = (int*)realloc(0 ,5 * sizeof(int));
if (NULL != p)
{
//do something
}
free(p);
p = NULL;
return 0;
}
用法2.重新申请内存大小。
int* pI = (int*)malloc(5 * sizeof(int));
pI = (int*)realloc(pI, 10);
/**
* data: 20150108
* author: kangear
* func: malloc in sub function
* 说明: malloc函数在子函数中的使用
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MALLOC(type, n) (type*)malloc(n*sizeof(type))
void func(void** buf) {
*buf = MALLOC(unsigned char, 5);
memset(*buf, 0, 5);
strncpy(*buf, "1", 1);
}
int main() {
unsigned char *p;
func(&p);
printf("%s\n", p);
}