关于指针,函数,数组的程序
/*目的:将指定范围元素复制到指定数组中。
*/
#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 编辑 ]