首页 > 其他 > 详细

1214.2——动态分配内存实战

时间:2015-12-14 22:52:30      阅读:181      评论:0      收藏:0      [点我收藏+]

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

typedef struct{
    char *name;
    int age;
}Person;

int main(int argc, const char * argv[]) {
    
    //定义一个结构体指针数组
    Person *array[5] = {};
    
    //从终端输入一个人的信息
    //为这个人分配内存空间
    Person *pxd = (Person *)malloc(1 * sizeof(Person));
    if (pxd == NULL) {
        //失败退出
        exit(EXIT_FAILURE);
    } else {
        //输入信息
        //1.name
        //为name指针指向的变量分配内存空间
        char *pName = (char *)malloc(10 * sizeof(char));
        if (pName == NULL) {
            //失败退出
            //首先释放结构体的内存
            free(pxd);
            
            //退出
            exit(EXIT_FAILURE);
        } else{
            //
            pxd->name = pName;
            
            printf("请输入姓名:");
            scanf("%s", pName);
        }
        
        printf("请输入年龄:");
        scanf("%d", &(pxd->age));
    }
    
    array[0] = pxd;
    
    //其他操作
    
    //输出
    printf("name:%s age:%d\n", array[0]->name, array[0]->age);
    
    //释放内存
    free(pxd->name);
    free(pxd);
    return 0;
}

1214.2——动态分配内存实战

原文:http://www.cnblogs.com/damonWq/p/5046602.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!