被称为对象而不是函数c
早上好 – 这些都是我的面条烹饪了一点(同样,谷歌关于我注意到的c编程语言很难…)
void prepareFrames(PDouble prep){ int gap = prep->gap; printf("Gap is %d\n", gap); prep->intFrames = (PFrame*)malloc(gap*sizeof(PFrame)); PFrame copyFrame = prep->first; int i; for(i=0; i intFrames[i] = (PFrame)malloc(sizeof(Frame)); copyFrame(prep->intFrames[i], prep->first, i); //LINE 189 } } void copyFrame(PFrame new, PFrame copy, int num){ new->sequence = copy->sequence; new->evaluatedFrame = copy->evaluatedFrame + num; new->numBoxes = copy->numBoxes; new->boxes = (PBox*)malloc(copy->numBoxes*sizeof(PBox)); int i; for(i=0; i numBoxes; i++){ PBox old = copy->boxes[i]; new->boxes[i] = (PBox)malloc(sizeof(Box)); copyBox(new->boxes[i], old); } }
我收到这个错误:
error: called object 'copyFrame' is not a function
原型符合定义。 是什么赋予了?
您已在本地范围内重新定义了copyFrame
:
PFrame copyFrame = prep->first;
您已经定义了名为copyFrame的局部变量: PFrame copyFrame = prep->first;
除非PFrame定义为
typedef void (*PFrame)(PFrame new, PFrame copy, int num);
我看不出它应该如何编译。 否则,您甚至不使用该copyFrame
变量。
您有一个名为copyFrame的变量,它与您的函数名称冲突。
将PFrame copyFrame
重命名为其他内容,它应该可以正常工作。