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

#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 · 访问量 1143
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览