2 baidu 24736703 baidu_24736703 于 2016.04.26 15:47 提问

为什么这个程序运行之后没显示呀,我感觉都对呀,求助

源码如下:
// ex8-4.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include
#include

using namespace std;

struct stringy{
char * str;
int ct;
};

char * set(stringy & st, char * ch);
void show(const stringy & st, int n=1);
void show(const char * ch, int n=1);

int _tmain(int argc, _TCHAR* argv[])
{
cout << "ksdfh" << endl;
stringy beany;
char testing[] = "Reality isn't what is used to be.";
char * pt=set(beany, testing);

delete[] pt;
show(beany);
show(beany, 2);
testing[0] = 'D';
testing[1] = 'U';
show(testing);
show(testing, 3);
show("done!");

return 0;

}

char * set(stringy & str, char * ch)
{
char * pt = new char[];
pt = ch;
str.str = pt;
str.ct = strlen(str.str);
return pt;
}

void show(const stringy & str, int n)
{
for (int i = 0; i < n; i++)
cout << str.str << endl;
}

void show(const char * ch, int n)
{
for (int i = 0; i < n; i++)
cout << ch << endl;
}
求解答一下,谢谢!

3个回答

u013651319
u013651319   2016.04.26 17:53

char * set(stringy & str, char * ch)
{
char * pt = new char[]; //new 1个有什么用
pt = ch;
str.str = pt;
str.ct = strlen(str.str);
return pt; //返回的ch 即传入的testing,主函数再delete 局部变量
}

baidu_24736703
baidu_24736703 回复vlaketang: 那这里应该怎么delete呀
大约 2 年之前 回复
baidu_24736703
baidu_24736703 没结果,不是没结构,上面打错了字,不好意思
大约 2 年之前 回复
baidu_24736703
baidu_24736703 加了char数组的size之后,还是没结构,正如我上面代码写得,我已经在主函数中delete了new内存了,但还是没有用
大约 2 年之前 回复
u013651319
u013651319   2016.04.27 11:10

你主函数delete的不是new的内存,delete的是 set(stringy & str, char * ch) 返回值 是传入的参数的testing。逻辑有问题

u013651319
u013651319 而且结构体里边就是个指针,没有内存空间,如果delete了在set中的new,又是个野指针了
大约 2 年之前 回复
qq_25867649
qq_25867649   2016.04.27 16:24

只有用new才能用delete释放,这是成对出现的 ,你把delete【】 pt; 这句屏了,重新编译就好了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
数据结构好难啊!!!
数据结构上机真的好难啊!!!   这完全看不懂事什么东东吗!!!   求帮助!!!求解脱!!!
test2.rar......
求助呀求助~为什么要超过20个字呀呀呀呀呀呀呀呀呀呀...
当你穷得没钱吃饭,还有爱情吗?
由于性别的关系,我是第一次进来 .苦闷了很久,思考了很久 .终于决定还是说出来.   事情还得从头说起,我大学毕业后就去了广州找工作,在那两周左右的时间终于找了一份在台湾一家公司做软件工程师的活,如果我不是乙肝小三阳的话,也许我现在正在那进行ERP系统的二次开发,就这样因为身体的原因我失去了工作,最后由于找工作一直不顺在加上不想看我婶子的脸色,因此就回到了A市.在A市找了一个卖医疗器械的活,在此期
我的相思呀
送给偶的GF小风儿,寄托相思之情~ ^_^ 我的相思呀 我的相思呀何日才能见到你!光阴这么空虚,生活这么乏味,人人都这样生活,只有我过不下去。时光流逝,但同你相会的日子却一去不复回。你看这变化,是否已经割断这短短的生命之中那长长的思念!即便是如愿以偿,要想见到你,我还得经受各种磨难。相思的痛苦我有所体验,但我无能为力,因为是我将爱火点燃。这痛苦愈深,对你的爱慕之心就
南通JAVA培训程序猿注定一辈子学不完的技术
“从450家知名企业的Java招聘信息统计”的JAVA程序员要掌握的技能树
Oracle监听打不开
Oracle监听打不开:从Oracle的错误提示来看,是说TNS:no listener ,估计是某种服务没有启动,打开windows管理工具->服务,一看,有一个OracleOraHome90TNSListener这样的服务,和错误信息题是一致,基本就可以肯定是这个服务所引发的问题。
求助呀!!!
求助求大神来改错#include&amp;lt;iostream&amp;gt;using namespace std;int gold[20]={0};int silver[20]={0};int copper[20]={0};int main(){ int n; cin&amp;gt;&amp;gt;n; for(int i=1;i&amp;lt;=n;i++) { cin&amp;gt;&amp;gt;gold[i]; cin&amp;gt;&amp;gt;...
求助呀!!
<br />一个给毕业学生开的系列讲座,关于提升工作能力的。取个什么名字好。时间紧迫,还望各位帮帮忙。
css 怎么感觉越学越难
<br /><table> 这个html标签比较奇怪,<td></td>内容的现实,居然和<td></td>内的Hml标签的摆放位置有关,之前也遇到过,如果<br /><X>                         和<X><Y></y><Y></y><Y></y><X>是有区别的。<br />     <Y></y><br />     <Y></y><br />      <Y></y><br /><X><br /> 
[POJ1001]狼抓兔子 做题笔记
·· / ·– ·· ·-·· ·-·· / ·–· · ·-· ··· ·· ··· - / ··- -· - ·· ·-·· / ·· / ·– ·· -·题目来源:http://www.lydsy.com/JudgeOnline/problem.php?id=1001 这题是最大流,也可以用spfa过,虽然我并不会。。 注意一下这题的边是无向边,边要正反存两遍,算上网络流原有的反向边相当于