| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 805 人关注过本帖
标题:指向一维数组指针问题,无法运行,求解
只看楼主 加入收藏
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
收藏
得分:30 
回复 楼主 zhu_zhi
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void main()
{
    void sort(char *q[10],int n);
    char str[10][11];
    int i;
    for(i=0;i<10;i++)
    {
        scanf("%s",str[i]);
    }
    char *p[10];
    for(i=0;i<10;++i)
    {
    p[i]=str[i];
    }
    sort(p,10);

}
void sort(char *q[10],int n)
{
    char *t[10];
    char *r=(char *)malloc(11*sizeof(char));
    int i,j;
    for(i=0;i<n-1;i++)
        for(j=i+1;j<n;j++)
        {
            if(strcmp(q[i],q[j])>0)
            {
                strcpy(r,q[i]);
                strcpy(q[i],q[j]);
                strcpy(q[j],r);
            }
        }
        i=0;
        do
        {
            printf("%s  ",q[i]);
             i++;
        }
        while(i<10);
}//我改了一点可以运行,你试试看吧

[ 本帖最后由 fl8962 于 2014-2-21 06:30 编辑 ]

想抽苏烟了。
2014-02-21 06:29
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
收藏
得分:0 
回复 楼主 zhu_zhi
char (*p)[10] 和 char *p[10] 有什么不同楼主你搞清楚了么?

想抽苏烟了。
2014-02-21 06:29
zhu_zhi
Rank: 2
来 自:广西百色
等 级:论坛游民
帖 子:129
专家分:92
注 册:2013-4-25
收藏
得分:0 
回复 12楼 fl8962
我理解,我只是尝试用char(*)[10]指针来解题,看来是行不通的,要解此题必须使用char*[10]指针。
谢谢!
2014-02-21 10:10
zhu_zhi
Rank: 2
来 自:广西百色
等 级:论坛游民
帖 子:129
专家分:92
注 册:2013-4-25
收藏
得分:0 
回复 11楼 fl8962
做出来!但愿我做指针题时,不晕头转向。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void main()
{
   void sort(char *x,char *y);
   char str[10][11];
   char *p[10];   
   for(int i=0;i<10;i++)
        scanf("%s",str[i]);
    for(i=0;i<10;i++)
        p[i]=str[i];
    for(i=0;i<=8;i++)
        for(int j=i+1;j<=9;j++)
            if(strcmp(p[i],p[j])>0) sort(p[i],p[j]);
    for(i=0;i<10;i++)
        printf("%s\n",p[i]);
}
void sort(char *x,char *y)
{
    char *t=(char*)malloc(11*sizeof(char));
    strcpy(t,x);
    strcpy(x,y);
    strcpy(y,t);   
}
2014-02-21 16:51
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
呵呵,你只需要把你一楼代码中的(*r)[10]声明成r[10]。之后strcpy中的*r改成r就可以了。问题仍出在悬浮指针(没有实体)上。

14楼的代码没有释放动态申请的内存。大忌。

重剑无锋,大巧不工
2014-02-21 21:11
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
收藏
得分:0 
回复 13楼 zhu_zhi
obviously, the pointer of char (*p)[10] can solve your problem, however the way you use is incorrect.

想抽苏烟了。
2014-02-22 02:06
zhu_zhi
Rank: 2
来 自:广西百色
等 级:论坛游民
帖 子:129
专家分:92
注 册:2013-4-25
收藏
得分:0 
回复 16楼 fl8962
you are right.
2014-02-22 22:35
快速回复:指向一维数组指针问题,无法运行,求解
数据加载中...
 
   



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

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