| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 150 人关注过本帖
标题:illegal use of pointer
收藏  订阅  推荐  打印 
zzt_428
Rank: 2
来自:南京师范大学
等级:注册会员
威望:1
帖子:156
积分:1740
注册:2008-7-6
illegal use of pointer

小弟初学编程,编译提示非法使用指针,请大家多多指点
程序功能是把二维数组中最大的放在中间,最小的放在第一个位置,第二小的放在第5个位置
#include <stdio.h>
int main()
{
    int a[5][5],*pointer,i,j,k;

    printf("Input the matricx:\n");
    for(i=0; i<5; i++)
    {
        for(j=0; j<5; j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    pointer=&a[0][0];
    Change(pointer);
    printf("Now matrix:\n");
    for(i=0; i<5; i++)
    {
        for(j=0; j<5; j++)
            printf("%3d",a[i][j]);
        printf("\n");
    }
    

    return 0;
    
}

Change(int *p)
{
    int i,j,temp;
    int *pMax, *pMin;
    pMax=pMin=p;

    for(i=0; i<5; i++)
    {
        for(j=0; j<5; j++)
        {
            if(*pMax < *(p+5*i+j))
                pMax=p+5*i+j;
            if(*pMin > *(p+5*i+j))
                pMin=p+5*i+j;
        }
    }
    temp=*(p+12);     //最大的放到中间
    *(p+12)=*pMax;
    *pMax=temp;
    temp=*p;          //最小的放到第一个位置
    *p=*pMin;
    *pMin=temp;

    pMin=p+1;
    for(i=0; i<5; i++)
    {
        for(j=0; j<5; j++)
        {
            if((*(p+i*5+j) < *pMin)
              && ((p+5*i+j) != p))
                pMin=p+i*5+j;

        }

    }
    temp=*pMin;
    *pMin=*(p+4)  //非法使用指针!!!
    *(p+4)=temp;
    
}
搜索更多相关主题的帖子: pointer  illegal  use  
2008-8-16 17:33
csynyk
Rank: 2
等级:注册会员
威望:1
帖子:114
积分:1460
注册:2008-8-9

没看你的逻辑,单从语法上看了一编!
在程序中 *pMin=*(p+4)后面又没有" ; " 号?

http://blog.csdn.net/csynyk
2008-8-16 20:13
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.057948 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved