用指针获取垃圾值?

时间:2016-03-10 19:31:02

标签: c++ arrays pointers

我试图通过指针在第三个数组中添加两个初始化数组,但我仍然得到垃圾值。这是我的代码:

sort

知道发生了什么事吗?

1 个答案:

答案 0 :(得分:1)

以下是add功能的代码:

void add(float* ptr, float* ptr1, float* ptr2){
   *ptr++  = *(ptr1++) + *(ptr2++);
}

这段代码似乎缺少一个循环,可以将指针向前移过数组元素,特别是考虑到您正在更改ptrptr1的值,并且ptr2没有使用调整后的值。

你的意思是这样吗?

void add(float* ptr, float* ptr1, float* ptr2){
   for (int i = 0; i < SIZE; i++) {
      *ptr++  = *(ptr1++) + *(ptr2++);
   }
}

或者,为清楚起见,或许这样的事情?

void add(float* ptr, float* ptr1, float* ptr2){
   for (int i = 0; i < SIZE; i++) {
      ptr[i] = ptr1[i] + ptr2[i];
}

没有循环,你只更新输出数组的第一个元素,这可能解释了为什么你会看到垃圾。