| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3718 人关注过本帖
标题:用指针函数返回二维数组的指针,请高手指教啊
只看楼主 加入收藏
神马都浮云
Rank: 2
等 级:论坛游民
帖 子:13
专家分:15
注 册:2011-7-11
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<string.h>
#define NUM 10
typedef char (*T)[10];
T String_sort(char (*str)[10],int n)
{
    char temp[10];
    int i,j;
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<n-1-i;j++)
        {
            if(strcmp(*(str+j),*(str+j+1))>0)
            {
                strcpy(temp,*(str+j));
                strcpy(*(str+j),*(str+j+1));
                strcpy(*(str+j+1),temp);
            }
        }
    }
    return str;
}
int main(void)
{
    char str[NUM][10];
    char (*p)[10];
    int i;
    for(i=0;i<NUM;i++)
    {
        gets(*(str+i));
    }
    p=String_sort(str,NUM);
    for(i=0;i<NUM;i++)
    {
        puts(*(p+i));
    }
    return 0;
} 
这样应该行吧
2011-11-16 23:18
AnZai_Zero
Rank: 2
等 级:论坛游民
帖 子:25
专家分:23
注 册:2011-11-2
收藏
得分:0 
回复 11楼 神马都浮云
这样是可以。不过我就是想弄明白:String_sort函数写为int *String_sort(char (*str)[10],int n)时能正确编译,但会出现如下警告:
suspicious pointer conversion in function String_sort;
suspicious pointer conversion in function main;
String_sort函数写为char *String_sort(char (*str)[10],int n)时能正确编译,但也会出现相同的警告:
suspicious pointer conversion in function String_sort;
suspicious pointer conversion in function main;
2011-11-17 08:27
guang0725
Rank: 2
等 级:禁止访问
帖 子:70
专家分:70
注 册:2011-9-5
收藏
得分:0 
嗯,格式一定要看好了
2011-11-17 11:11
guang0725
Rank: 2
等 级:禁止访问
帖 子:70
专家分:70
注 册:2011-9-5
收藏
得分:0 
嗯,格式一定要看好了
2011-11-17 11:29
樾宝
Rank: 3Rank: 3
来 自:常德
等 级:论坛游侠
帖 子:72
专家分:147
注 册:2011-8-19
收藏
得分:0 
好想定义指针是
char
定义

怎么会是int 哦?

求教?
2011-11-17 12:32
馨梦惜夕
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:54
专家分:190
注 册:2011-5-18
收藏
得分:0 
#include<stdio.h>
#include<string.h>
#define NUM 10
void String_sort(char (*str)[10],int n)
 {
     char temp[10];
     int i,j;
     for(i=0;i<n-1;i++)
     {
         for(j=0;j<n-1-i;j++)
         {
             if(strcmp(*(str+j),*(str+j+1))>0)
             {
                 strcpy(temp,*(str+j));
                 strcpy(*(str+j),*(str+j+1));
                 strcpy(*(str+j+1),temp);
             }
         }
     }
 }
 int main(void)
 {
     char str[NUM][10];
     int i;
     for(i=0;i<NUM;i++)
     {
         gets(*(str+i));
     }
     String_sort(str,NUM);
     for(i=0;i<NUM;i++)
     {
         puts(*(str+i));
     }
     return 0;
 }
这样可以了
2011-11-17 13:21
zxc1989
Rank: 2
等 级:论坛游民
帖 子:15
专家分:45
注 册:2011-11-15
收藏
得分:0 
回复 5楼 embed_xuel
难道要把int型改成char型?
2011-11-18 15:55
滴迪
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-5-3
收藏
得分:0 
我也遇到这个问题,不过我看到你的一个可能的错误,你返回的是二维数组,函数应该这样定义吧int **String_sort(char (*str)[10],int n)
2013-05-03 22:37
快速回复:用指针函数返回二维数组的指针,请高手指教啊
数据加载中...
 
   



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

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