| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 618 人关注过本帖
标题:指针上的小问题,求解!!!
只看楼主 加入收藏
hezitulong
Rank: 1
来 自:四川北川
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-10-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
指针上的小问题,求解!!!
#include"iostream.h"
int *max(int*p,int a);
int main()
{
    int a[]={2,3,4,6,45,3,23,65};
    cout<<*max(a,7)<<endl;
    return 0;
}
int *max(int*p,int a)
{
    int *max=p;/*如果把这句改成int *max=0;或int *max=NULL;运行时都会崩溃。这是为什么?*/
    for(int i=0;i<a;i++)
    {
        if(p[i]>*max)
        *max=p[i];
    }
    return max;

}
初学者,请大家指教;谢谢!
搜索更多相关主题的帖子: 求解 指针 
2010-11-17 22:06
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
收藏
得分:15 
程序代码:
#include<iostream>
using namespace std;
int *max(int*p,int a);
int main()
{
    int a[]={2,3,4,6,45,3,23,65};
    cout<<*max(a,7)<<endl;
    return 0;
}
int *max(int p[],int a)
{
    int *max=new int ;/*如果把这句改成int *max=0;或int *max=NULL;运行时都会崩溃。这是为什么?*/
    *max=0;
    for(int i=0;i<8;i++)
    {
        if(p[i]>*max)
        *max=p[i];
    }
    return max;

}
要给max 申请内存

If You Want Something, Go Get It, Period.
2010-11-17 22:17
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
楼上说的很对  她的意思是你的 max 指针没有分配空间

                                         
===========深入<----------------->浅出============
2010-11-17 22:23
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:5 
回复 楼主 hezitulong
这个问题很明显。
因为指针的值为0或者空,代表这个指针不指向任何内存空间。所以程序当然崩溃了。

还有二楼的做法也很危险。
注意要及时释放申请的内存。

南国利剑
2010-11-18 18:58
hezitulong
Rank: 1
来 自:四川北川
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-10-24
收藏
得分:0 
谢谢

把枯燥的代码,变成多彩的程序!
2010-11-18 19:02
无名可用
Rank: 4
等 级:业余侠客
帖 子:79
专家分:259
注 册:2010-7-27
收藏
得分:0 
我觉得用下标处理数组要比用指针处理数组安全许多..
max()函数也可以这样写,也许产生异常的可能性小些。
程序代码:
int Max(int p[],int a)
{
    int max=p[0];
    for(int i=0;i<a;i++)
    {
        if(p[i]>max)
           max=p[i];
    }
    return max;
}
你的代码当执行Max()函数时把原数组的第一个数据覆盖了。。
if(p[i]>*max)
        *max=p[i];
小心。希望对楼主有帮助
2010-11-19 22:39
快速回复:指针上的小问题,求解!!!
数据加载中...
 
   



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

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