| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 602 人关注过本帖
标题:一个关于神秘指针的问题,,,,小白敬上
只看楼主 加入收藏
wzl963358694
Rank: 2
等 级:论坛游民
帖 子:35
专家分:17
注 册:2013-3-10
结帖率:66.67%
收藏
 问题点数:0 回复次数:5 
一个关于神秘指针的问题,,,,小白敬上
图片附件: 游客没有浏览图片的权限,请 登录注册

问题都在图片里了,,,希望前辈指点,,小白敬上


程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>

bool str_in(char **);
void str_sort(char *[],int );
void swap( char **p1, char **p2);
void str_out(char *[],int);

const size_t BUFFER_LEN = 256;
const size_t NUM_P = 50;

int main(void)
{
    char *ps[NUM_P];
    int count = 0;
    
    printf("\nEnter successive lines, pressing Enter at the eng of"
               " each line.\nJust press enderto end.\n");
    
    for(count = 0; count<NUM_P ; count++)
    if(!str_in(&ps[count]))
      break;
    
    str_sort(ps,count);
    str_out(ps,count);
    return 0;
      
}

bool str_in(char **pString)
{
    char buffer[BUFFER_LEN];
    if(gets(buffer) == NULL)
    {
        printf("\nError reading string.\n");
        exit(1);
    }
    if(buffer[0] == '\0')
      return false;
      
    *pString = (char *)malloc(strlen(buffer) + 1);
    
    if(*pString == NULL)
    {
        printf("\nOut of memory.");
        exit(1);
    }  
    strcpy(*pString,buffer);
    return true;
}

void str_sort( char *p[],int n)
{

    bool sorted = false;
    while(!sorted)
    {
        sorted = true;
          for(int i=0 ; i<n-1 ; i++)
           if(strcmp(p[i],p[i+1]) > 0)
           {
               sorted = false;
               swap(&p[i],&p[i+1]);
           }
    }
}

void swap(char **p1,char **p2)
{
    char *pt = *p1;
    *p1 = *p2;
    *p2 = pt;
}

void str_out(char *p[], int n)
{
    printf("\nyour input sorted in order is:\n\n");
    for(int i=0 ; i<n ; i++)
    {
        printf("%s\n",p[i]);
        free(p[i]);
        p[i] = NULL;
    }
    return;
}
搜索更多相关主题的帖子: color 图片 
2013-06-27 20:19
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
收藏
得分:0 
这是两个不同的函数,你在函数内部声明的局部变量只能作用于本函数内部。两个函数虽然都是*pt 但是并没有任何直接联系

C++菜鸟
2013-06-27 20:27
wzl963358694
Rank: 2
等 级:论坛游民
帖 子:35
专家分:17
注 册:2013-3-10
收藏
得分:0 
回复 2楼 lzj12530
那第二个函数调用不就是在第一个函数的内部么?
2013-06-27 20:40
wzl963358694
Rank: 2
等 级:论坛游民
帖 子:35
专家分:17
注 册:2013-3-10
收藏
得分:0 
回复 2楼 lzj12530
大哥,你说的对,是我刚刚扭曲了你的想法===、、、
2013-06-27 21:06
YJ_Hao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:215
专家分:609
注 册:2013-3-22
收藏
得分:0 
大哥们,要搞清楚谁调用谁,好不好?
然后去翻翻函数的章节,再认真看一遍!

[ 本帖最后由 YJ_Hao 于 2013-6-27 21:41 编辑 ]
2013-06-27 21:37
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:0 
楼主可以看看变量的作用域

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-06-28 08:05
快速回复:一个关于神秘指针的问题,,,,小白敬上
数据加载中...
 
   



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

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