标题:关于指针,函数,数组的程序
取消只看楼主
hanxiaokun
Rank: 2
等 级:论坛游民
帖 子:44
专家分:56
注 册:2011-8-31
结帖率:75%
已结贴  问题点数:20 回复次数:4 
关于指针,函数,数组的程序
/*
    目的:将指定范围元素复制到指定数组中。
*/

#include

void copy_ptr(double *,double *,int);
int main(void)
{
    double source[8]={1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8};
    double target[3];//目标函数
    //int i;
    copy_ptr(&source[2],target,3);//把源数组的第3-5个元素复制到target。传递第三个元素的地址,目标函数的地址,以及复制元素数目
    return 0;
}


void copy_ptr(double *source,double * target,int n)
{
    int i;
    for(i=0;i<N;I++)
        *target++=*source++;
    for(i=0;i<3;i++)
        printf("%.2lf ",*target++);
    putchar('\n');
        
}
执行结果不是从source[2]开始复制,而是从头复制。
这事另外个朋友发表的,但由于标题不吸引人,很少有高手进来
希望那位高手能给个这个程序错误的原因,和在此种错误的情况下为什么会输出这种结果的原因
各位兄弟,我知道这个程序是输出越界造成的结果,也知道怎么改正,关键是这个程序在这种越界的情况下为什么
会转从source数组的开头开始输出


[ 本帖最后由 hanxiaokun 于 2011-9-9 08:56 编辑 ]
搜索更多相关主题的帖子: 函数 void double return source 
2011-09-08 17:09
hanxiaokun
Rank: 2
等 级:论坛游民
帖 子:44
专家分:56
注 册:2011-8-31
得分:0 
回复 7楼 A13433758072
其实我以前恢复那位原始发布这个程序的人的时候已经知道输出越界,关键是在这种越界的情况下为什么输出会从souce数组的开头输出呢,这点我不太明白
2011-09-09 07:59
hanxiaokun
Rank: 2
等 级:论坛游民
帖 子:44
专家分:56
注 册:2011-8-31
得分:0 
回复 14楼 scott_dw
朋友,我以前恢复你的时候早就说明原因了,只不过我不知道在这种越界的情况下输出为什么会从souce数组的开头开始输出
2011-09-09 08:02
hanxiaokun
Rank: 2
等 级:论坛游民
帖 子:44
专家分:56
注 册:2011-8-31
得分:0 
各位兄弟,我不理解的是在这种越界的情况下为什么会转从souce数组的开头开始输出
2011-09-09 08:27
hanxiaokun
Rank: 2
等 级:论坛游民
帖 子:44
专家分:56
注 册:2011-8-31
得分:0 
各位兄弟,在这种越界的情况下程序为什么会转从souce数组的开头输出,这个是我不明白的啊
2011-09-09 08:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-349490-1-1.html




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

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