标题:cstring 问题
只看楼主
mfkblue
Rank: 5Rank: 5
等 级:职业侠客
帖 子:472
专家分:343
注 册:2008-12-21
结帖率:96.25%
已结贴  问题点数:20 回复次数:6 
cstring 问题
CString COrder5(CString c,int y)//y是CString c的长度.
{
    int x;   
    for (x=0;x<y;x++)
    {
        if ((c[x])>(c[x+1]))  //是不是从大到小排好序的;
            continue;
        else break;
    }
    if (x==y)
        return c;

}
弹出内存不能读,内存不能写,这是为什么?
2012-11-27 23:25
w527705090
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:441
专家分:1882
注 册:2011-6-28
得分:5 
没用过。。。不懂。。。

有心者,千方百计;无心者,千难万难。
2012-11-27 23:34
w527705090
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:441
专家分:1882
注 册:2011-6-28
得分:0 
好像这个x==y是不对的吧。。。。。。。。

有心者,千方百计;无心者,千难万难。
2012-11-27 23:35
mfkblue
Rank: 5Rank: 5
等 级:职业侠客
帖 子:472
专家分:343
注 册:2008-12-21
得分:0 
x是循环了多少次,y是长度,循环跑完刚好x==y,那c[x+1]在最后一次可能会访问到未知的地方,但问题好像不是那里。
2012-11-28 01:02
linan03
Rank: 4
等 级:业余侠客
威 望:5
帖 子:76
专家分:204
注 册:2012-10-27
得分:5 
回复 楼主 mfkblue

是函数没有返回值的问题吧。

根据你写的代码,比如cstring 长度为6 ,x从0开始,c[0]和c[1]比较,如果c[0]<c[1]的话,岂不是直接跳出循环,那么x永远也不会等于y了,这个函数就没有返回值了吧。


2012-11-28 06:55
mfkblue
Rank: 5Rank: 5
等 级:职业侠客
帖 子:472
专家分:343
注 册:2008-12-21
得分:0 
我还没写完这个函数,后面会处理这个问题,就算直接返回c一样弹内存不能读,内存不能写.
2012-11-28 19:10
a635958000
Rank: 4
等 级:业余侠客
帖 子:55
专家分:253
注 册:2012-10-26
得分:10 
for (x=0;x<y;x++)
循环中x<y-1才对啊
2012-11-29 09:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-388781-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.106813 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved