【发布时间】:2014-04-24 04:58:24
【问题描述】:
实际上我使用单元测试进行开发。 但是我以其他形式分解我的代码以询问我遇到的错误。
我的header 文件中有这些声明
typedef struct
{
void *topOfStack;
}Stack;
typedef enum {NUMBER,OPERATOR,IDENTIFIER}Token;
int operatorEvaluate(Stack *numberStack , Stack *operatorStack);
void * pop(Stack *stack);
以下是各自的source文件
#include "try.h"
void *pop(Stack *numberStack)
{
Token *newToken = NUMBER;
return newToken;
}
int operatorEvaluate(Stack *numberStack , Stack *operatorStack)
{
Token *first = (Token*)pop (numberStack);
if(numberStack != operatorStack)
{
if(*first == NUMBER)
return 1;
}
return 0;
}
这是我调用函数的源文件main
#include "try.h"
#include <stdio.h>
int main ()
{
Stack numberStack;
Stack operatorStack;
int num;
num = operatorEvaluate(&numberStack , &operatorStack);
printf("This is the returned value: %d",num);
return 0;
}
当我尝试编译时,单元测试告诉我内存访问错误。
所以我尝试使用eclipse来编译这些,windows告诉.exe已经停止工作。
希望有人可以帮助我,我卡了很长时间......
【问题讨论】:
标签: c function pointers memory runtime-error