函数在#include
malloc 函数原型 void *malloc (siza_tsize) 分配所需要的内存空间,并返回一个指向它的指针.
realloc 函数原型 viod *realloc(void*ptr,size_t size) 扩容尝试重新调整之前调用malloc所分配的 空间。
char *strcpy(char* dest, const char *src); 将目标 中赋值一些东西
函数原型 void *memset(void *str, int c, size_t n) 将目标初始为想要的东西
free C 库函数 void free(void *ptr) 释放之前调用 calloc、malloc 或 realloc 所分配的内存空间。
释放,防止内存泄露 。 防止悬挂指针(防止出现野指针)
#include
#include
#include
int main()
{
char *p; // 野指针
p = (char*)malloc(1); // malloc返回的是void*型,要强制转换成char*型
//p 有了具体的指向
memset (p,'\0',1); // 将初始值为 \0
*p = 'c';
free(p); // 释放,防止内存泄露
p = NULL;
p = (char*)malloc(12); // 开辟字节
if(p == NULL){
printf("malloc cuowu"); // 判断 是否指向 想要的地方
exit(-1);
}
memset (p,'\0',12); //将初始值为 \0
printf("扩容地址 %x\n",p);
int len = strlen("chenlicheng3456787654567");
int newlen = len - 12 +1;
realloc(p,newlen);
printf("扩容后地址 %x\n",p);
strcpy(p,"chenlicheng345656565667876545670");// 越界了
puts(p);
puts("end");
return 0;
}