我正在尝试将堆栈转换为字符串。我的功能是
int StackToString(const struct Stack *stack, char *result, int resultSize);
我希望我的堆栈看起来像
- 堆栈[STACK_MEMORY_ADDRESS]:
- ELEMENT_NUMBER:数据...
- ELEMENT_NUMBER:数据
如果结果中有足够的空间,字符串应该存储在那里,我想返回一个“1”值。如果没有(由 resultSize 决定),那么我们返回 0 并且结果是未定义的。
到目前为止,这是我写的:
int StackToString(const struct Stack *stack, char *result, int resultSize){
int i;
char str[20];
sprintf(str, "stack[0x%x]:\n", stack);
strcat(result, str);
for(i=0; i<stack->currentItemIndex;i++){
???
}
}
任何人都可以就我接下来应该做什么提供任何建议吗?我想我需要做一个冲刺,并将堆栈中的剩余元素与结果大小进行比较,并在某些情况下返回,但我不确定如何实现它......