| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 877 人关注过本帖
标题:用指针写了个用指针对3个字符串由小到大排序的题目,但是总是没找到哪错了, ...
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25793
专家分:48814
注 册:2011-6-22
  得分:0 
你那“答案”與8樓的不同,在於後者把指針temp指向了一個有效的空間,即p1字符串的入口,而前者是哪都不指向的。

授人以渔,不授人以鱼。
2015-02-25 23:55
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25793
专家分:48814
注 册:2011-6-22
  得分:0 
8樓代碼的漏洞,是假定已分配的某個字符串空間足以應用,但現實的數據未必如此,因爲你事先并不知道哪個字符串是最長的。8樓鑽了一個空子,使用統一尺寸的“二維”數組,但現實需要排序的字符串序列可能是非整齊的真二維數組(即鋸齒形的)。


[ 本帖最后由 TonyDeng 于 2015-2-26 00:00 编辑 ]

授人以渔,不授人以鱼。
2015-02-25 23:58
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25793
专家分:48814
注 册:2011-6-22
  得分:0 
以下是引用firewater在2015-2-25 23:34:40的发言:

我是在做谭浩强那本书上的习题,请问有必要写那本书上的习题吗,还是做c和指针里的习题......

再說一下這個話題:編程沒有什麽標準答案,不要被《答案》誘導,那衹能作爲參考,檢驗真理的途徑是實踐。

授人以渔,不授人以鱼。
2015-02-26 10:35
aiyifan
Rank: 1
等 级:新手上路
帖 子:8
专家分:1
注 册:2015-2-24
  得分:1 
版主威武,在使用指针的时候必须确保指针是有效的。
void swap(char* p1,char* p2){
    char* temp = NULL;
    int len1 = strlen(p1);
    int len2 = strlen(p2);
    if(len1 > len2)
        temp = (char*)malloc(len1+1);
    else
        temp = (char*)malloc(len2+1);
    if(temp == NULL)exit(-1);
    if(strcmp(p1,p2)>0){
        strcpy(temp,p1);
        strcpy(p1,p2);
        strcpy(p2,p1);
    }
}
2015-02-26 11:06







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

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