说我有int *a, int *b, int *c
并说a
而b
已指向某些整数。
我想在a
和b
下添加整数,并将它们保存到c
所指向的位置
此:
*c = *a + *b;
不起作用。它总是吐出“'一元*'的无效论证。为什么会这样?
其他信息: 这是我试图实现它的方式:
int getCoordinates(int argc, char *argv[], FILE *overlay, FILE *base, int *OVx, int *OVy, int *OVendx, int *OVendy, int *Bx, int *By, int *Bendx, int *Bendy)
{
... // OVx and OVw are assigned here. I know it works so I won't waste your time with this part.
// Set overlay image's x and y defaults (0,0).
*OVx = 0;
*OVy = 0;
...
OVendx = (*OVx) + (*OVw);
OVendy = (*OVy) + (*OVh);
答案 0 :(得分:2)
这是一个有效的例子:
#include <stdio.h>
int main( int argc, const char* argv[] )
{
int x = 1;
int y = 2;
int z = 0;
int *a = &x;
int *b = &y;
int *c = &z;
*c = *a + *b;
printf( "%d + %d = %d\n", *a, *b, *c );
return 1;
}
运行收益率:
./a.out
1 + 2 = 3
您可能遇到的常见错误:
答案 1 :(得分:2)
如果Ovendx,Ovendy指向有效的内存位置,然后要为该位置指定值,则需要取消引用它们。所以,它应该是 -
(*OVendx) = (*OVx) + (*OVw);
(*OVendy) = (*OVy) + (*OVh);
您在发布的代码段中没有取消引用。