分配堆内存,malloc只是分配一块具体大小的空间,返回首地址给到用户,而且不会初始化内容,如果用户不去做初始化的操作,里面的内容有可能是之前分配过又释放掉的。

  • 分配常用变量地址
int *arr = malloc(sizeof(int)*10);//长度为10的int数组 一般malloc不会初始化数组
arr[0] = 5;
printf("arr[0]=%d\n", arr[0]);
  • 为结构体分配内存
typedef Point{
	int x;
	int y;
}Point_t;
Point_t *point = malloc(sizeof(Point_t));
if(point){
	buf->x = 5;
    buf->y = 10;
}
printf("buf=(%d, %d)\n", buf->x, buf->y);