#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;
}
原文:http://www.cnblogs.com/damonWq/p/5046602.html