【发布时间】:2011-03-08 00:54:22
【问题描述】:
假设我有int *a, int *b, int *c 并说a 和b 已经指向一些整数。
我想将整数向下相加 a 和 b 并将它们保存到 c 指向的任何地方
这个:
*c = *a + *b;
不起作用。它总是吐出“'unary *'的无效参数。为什么会这样?
附加信息: 这是我尝试实现它的方式:
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);
【问题讨论】:
-
它适用于我的机器。你到底有什么问题?
-
您确定正确分配了值吗? This example 工作正常。 (请注意,您必须取消引用指针才能查看值。您可能不会这样做。)
-
你有没有初始化指针
c指向一个有效的内存位置? -
看来您需要取消对分配的引用:*OVendx = (*OVx) + (*OVw);您的版本只是移动指针。
-
我们中的一些人也有同样的怀疑。同样,在发布问题时,请不要遗漏识别错误的关键行。
标签: c pointers int memory-address addition