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

#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<<函数完成返回值的输出。

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值