int main(int argc, const char * argv[])
{
思路:
1.从控制台输入的字符串如何存储?
解决方案:定义一个字符数组接收输入的字符串
2.如何动态为学员姓名开辟空间?
解决方案:计算出字符串的长度 + 1
3.如何存储为3个学员姓名开辟空间之后的地址?
解决方案:使用指针数组来进行存储地址,数组中有3个元素
char tempStr[20] = {0};//定义字符数组
char *names[3] = {0};//定义指针数组
printf("请输入学员姓名:");
for (int i = 0 ; i < 3; i ++) {
scanf("%s",tempStr);//输入学员姓名,并存储在数组中
names[i] = malloc(strlen(tempStr) + 1);//为学员姓名动态分配空间,
strcpy(names[i], tempStr);//将学员姓名地址存储到指针数组.
}
for (int i =0; i < 3; i ++) {
printf("%s ",names[i]);//打印堆区字符串,输入学员姓名
free(names[i]);//释放内存
names[i] =NULL;//指针指向无效空间
}
return 0;
}
输入3个学员的姓名,动态分配内存保存学员的姓名,并在最后输出
最新推荐文章于 2021-12-03 19:43:59 发布