4. C语言动态内存分配

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

struct woman
{
char name[50];
int age;
};

int main(int argc, char *argv[])
{
int *pi = malloc(sizeof(int));
long *pl = malloc(sizeof(long));
double *pd = malloc(sizeof(double));
char *pc = malloc(101); // 分配101个字节,可存放100个字符的字符串

// 分配struct woman结构体大小的内存
struct woman *pst = malloc(sizeof(struct woman));

// 使用动态分配的内容
*pi = 10;	printf("*pi = %d\n", *pi);
*pl = 20;	printf("*pl = %ld\n", *pl);
*pd = 10.5; printf("*pd = %lf\n", *pd);
strcpy(pc, "西施");		printf("*pc = %s\n", pc);
strcpy(pst->name, "嫦娥"); 
pst->age = 22;
printf("name = %s, age = %d\n", pst->name, pst->age);

// 释放动态分配的内存
free(pi);
free(pl);
free(pd);
free(pc);
free(pst); 

}

发布了43 篇原创文章 · 获赞 0 · 访问量 379

猜你喜欢

转载自blog.csdn.net/weixin_42505877/article/details/104592964