C:glibc检测到malloc():内存损坏:...段错误

时间:2014-04-10 21:03:34

标签: c memory-management malloc

我正在尝试运行我在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整数数组的范围。解决这个问题已经解决了问题。感谢您的时间和意见。

0 个答案:

没有答案