0

おはようございますSO-これは私の麺を少し調理しています(また、私が気付いた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 < gap; i++){
    prep->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 < copy->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

プロトタイプは定義と一致します。何が得られますか?

4

3 に答える 3

6

copyFrameそのローカルスコープで再定義しました:

PFrame copyFrame = prep->first;
于 2012-06-08T13:41:29.007 に答える
1

copyFrameという名前のローカル変数を定義しました:PFrame copyFrame = prep->first;PFrameがによって定義されていない限り

typedef void (*PFrame)(PFrame new, PFrame copy, int num);

どのようにコンパイルすべきかわかりません。copyFrameそれ以外の場合は、その変数を使用しません。

于 2012-06-08T13:44:27.163 に答える
0

関数名と競合するcopyFrameという名前の変数があります。

名前を別の名前に変更PFrame copyFrameすると、機能するはずです。

于 2012-06-08T13:42:45.047 に答える