//输入3个学员的姓名,动态分配内存保存学员姓名,并输出
//1)从控制台输入的字符串如何存储?
//解决方案:定义一个字符数组接收输入的字符串
//2)如何动态为学员姓名开辟开空间
//解决法:计算字符串长度 + 1;
//3)如何存储为3个学员姓名开辟空间之后的地址
//解决方案:使用指针数组来存储地址,数组中有三个元素.
char tempStr[20] = {0}; //临时字符串数组,存储输入的姓名
char *names[3] = {0}; //指针数组存储堆区地址
printf("请输入学员姓名:\n");
for (int i = 0; i < 3; i++) {
scanf("%s", tempStr);
names[i] = malloc(strlen(tempStr) + 1);//开辟动态空间 +1为了给'\0'增加一个位置
strcpy(names[i], tempStr); //将输入的三个学员姓名拷贝到,指针变量数组中
}
for (int i = 0; i < 3; i++) {
printf("%s\n",names[i]);
free(names[i]); //释放堆区内存
names[i] = NULL;//指针变量指向一块无效的区域
}
输入3个学员的姓名,动态分配内存保存学员姓名,并输出
最新推荐文章于 2023-11-11 00:02:47 发布