humanint 2016-12-10 13:19 采纳率: 100%
浏览 4607

c语言中,如何使用数组最后一个元素的后面一个元素的值完成数组的值的拷贝

我的代码时这样的,但是调试后是乱码
#include
void copy3(double ar[], double * source, double * s5);
int main(void)
{
double source[5] = { 1.1,2.2,3.3,4.4,5.5 };
double tar3[5];
copy3(tar3, source, source + 5);

getchar();
return 0;

}
void copy3(double ar[], double * source, double * s5)
{
int i;

for (i = 0; *(source + i) < *s5; i++)
    ar[i] = source[i];

}

请问,如果我需要通过传递数组最后一个元素的后一个数来拷贝数组的数据,应该如何写?(c primer plus的题是这样要求的)

  • 写回答

1条回答 默认 最新

  • Biniroad 2016-12-10 13:26
    关注

    数组最后一个元素的后一个数是未知的..不能 直接用

     *(source + i) < *s5
    

    来判断, 因为

     *s5
    
    可能很大, 这样 函数可能就直接跳出. 导致 ar 数组没有被赋值. 此时读取ar数组就可能是乱码..根据初始化方式有关
    
    评论

报告相同问题?

悬赏问题

  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办