拾遗笔记

动态内在分配

#include <malloc.h>
#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[])
{
  char * src ="abcde";
  char *p =malloc(2); //分配2个单位
  strcpy(p ,"a");
  printf ("%p\n",p); //打印当前p 的地址

  p=realloc(p,1026000);//重新对p进行分配,分配6个单位
  printf ("%p\n",p) ;//打印当前p 的地址
  /* realloc() 函数要求第一个参数必须是 malloc()或 calloc()的返回值    */
  /* realloc现在原地获取指定大小的内存,如果不能,那么需要另外分配,再free原来的内存; */
  strcpy(p ,src);
  puts(p);
  return 0;
}

Comments

comments powered by Disqus