Я схожу с ума, пытаясь выяснить это сообщение об ошибке, которое не имеет очевидной связи с реальностью / моим кодом.Я искал здесь и пришел к одному выводу: вы будете ненавидеть указатель, скрытый typedef.Извините, это вне моего контроля - проф предоставил код таким образом.Я редактирую код, как указано в проблеме.Я засовываю полные узлы, чтобы избежать вызовов malloc для каждой функции push и сохраняю их во вторичном стеке.Функция MakeEmptyS инициализирует стек с узлами INITIAL_SIZE.GrowEmptyS добавляет больше узлов в стек пустых узлов
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);
Для справки, вот функция Grow:
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);
}
}