我正在尝试运行我在C中的程序。我有一个堆栈ADT我作为这个程序的一部分,当我尝试创建一个新堆栈(只做一次)时,我得到{{1} }
被调用的函数是newStack(),定义为
*** glibc detected *** ./lcs_prog: malloc(): memory corruption: 0x00000000007e10c0 ***
其中StackP在头文件中定义为StackP newStack(void)
{
StackP temp;
temp = (StackP)malloc(sizeof(StackT));
temp->size = 0;
return temp;
}
,结构为
typedef struct StackT *StackP;
我在程序中使用malloc在其他三个地方(两个char *和一个int *),在此错误发生时成功完成。调用newStack()后程序会立即发生段错误。
来自valgrind的输出:
typedef struct StackT
{
StackItem content[MAX_SIZE];
int size;
}StackT;
我可能会访问使用malloc(成功)创建的整数数组时出现lengthLCS malloc错误。
我们将非常感谢您对此问题的任何帮助。感谢。
修改
在查看我的代码之后,我发现我的lengthLCS函数中有一个一个一个错误(未发布)我超出了malloc'd整数数组的范围。解决这个问题已经解决了问题。感谢您的时间和意见。