現実/私のコードとの明白な接続がないこのエラーメッセージを理解しようと狂ってしまいます。私はここで検索し、結論に至りました。あなたはtypedefによって隠されたポインタを嫌うでしょう。申し訳ありませんが、それは私のコントロール外です - 教授はコードをそのように提供しました。私は問題で指定されたコードを編集しています。私は各プッシュ関数でmalloc呼び出しを避け、それらをセカンダリスタックに格納するために完全なノードをポップしています。 MakeEmptyS関数は、INITIAL_SIZEノードを持つスタックを初期化します。 GrowEmptySC - '='トークンの前に期待される表現 '='なしの行
stack.cには、以下の機能を持って空のノードのスタックにノードを追加します。
void
MakeEmptyS(Stack S)
{
PtrToNode tmp;
if (S == NULL)
Error("Must use CreateStack first");
else
{
GrowEmptyS(S, INITIAL_SIZE);
while (!IsEmptyS(S))
{
tmp = TopopNode(S);
PushEmpty(S, tmp);
}
}
}
私はこのエラーを取得する:「Stack.c:53:22:エラー:=」の前に予想式を'token'であり、53行目はGrowEmptyS(S、INITIAL_SIZE)です。
参考のため、ここではグロウ機能である:
void
GrowEmptyS(Stack S, int NumToAdd)
{
int i;
PtrToNode TmpCell;
for(i = 0; i < NumToAdd; i++)
{
TmpCell = malloc(sizeof(struct Node));
if (TmpCell == NULL)
FatalError("Out of Space!!!");
else
PushEmpty(S,TmpCell);
}
}
あなたの教授があなたに悪いコードを与えたとしても、ここに投稿する前にそれを単純化しようとするべきです。 INITIAL_SIZEの定義を表示しないと、 'GrowEmptyS(S、INITIAL_SIZE)'の構文をどのようにデバッグするのですか?また、GrowEmptySはプリプロセッサマクロまたは関数ですか?自己完結型の短い(コンパイル可能な)短い例を提供すると、これらの質問すべてが解決されます。 http://sscce.org/ –
を参照してください。また、 'INITIAL_SIZE'の定義方法も教えてください。 –
INITIAL_SIZEの定義を提供していただけません。私が述べたように、GrowEmptySは関数です。しかし、次回は完全なコンパイル可能なソースを提供します。ありがとう! – TravisThomas