指针动态数组复制字符串并返回动态数组地址,输出两者的值

#include<iostream.h>
char * fun(char *t,char *s)
{
cin.getline(s,20);
int l=strlen(s);
t=new char[l+1];
strcpy(t,s);
return t;
}
int main()
{
char a[20],b[20];
cout<<fun(a,b)<<endl;
cout<<&a;
return 0;
}

关于动态数组理解起来不是很难,在c++中是用的new定义,delete释放 c是malloc定义,free释放,使用动态数组可以有效利用空间
int size=20;
int *p=new int[size];
二维的话就要
int size=20;
int (*p)[50]=new int [size][50];
new这个关键字
1、系统分配一段内存空间
2、调用构造函数
3、返回指针
我自己写的时候,将字符串复制到动态数组的时候就出了问题,我想输出这个字符串,因为我们平时只要输出数组名就可以了,所以我打算输出实参,就导致了乱码,在老师的帮助下我理解到了这个实参a并没有输入,是不确定的,就会乱码,可以直接用cout<<函数完成返回值的输出。

附上运行截图在这里插入图片描述

发布了20 篇原创文章 · 获赞 30 · 访问量 653

猜你喜欢

转载自blog.csdn.net/TIMEINAHURRY/article/details/105115009