我试图通过指针在第三个数组中添加两个初始化数组,但我仍然得到垃圾值。这是我的代码:
sort
知道发生了什么事吗?
答案 0 :(得分:1)
以下是add
功能的代码:
void add(float* ptr, float* ptr1, float* ptr2){
*ptr++ = *(ptr1++) + *(ptr2++);
}
这段代码似乎缺少一个循环,可以将指针向前移过数组元素,特别是考虑到您正在更改ptr
,ptr1
的值,并且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];
}
没有循环,你只更新输出数组的第一个元素,这可能解释了为什么你会看到垃圾。