使用malloc的C语言中的错误:malloc.c:2451:sYSMALLOc“断言失败”

马利卡

我是C语言的初学者,遇到内存分配问题。我检查了相关的讨论。我可能应该使用Valgrind,但是直到我学会如何使用它之前,我都会在这里发布问题。

这是我制作的“合并排序”代码的链接。http://ideone.com/utEzoq

但是,主要问题似乎在以下部分中:

void main()
{
     MergeSort(list, 0, n-1) //calling function on pointer to array of integers
}

int *MergeSort(int *A, int x, int y) //declaration
{
if(x==y)
{
    return A;
}

else
{
    int size=1+y-x;
    int half=(x+y)/2;

    MergeSort(A, x, half);  
    MergeSort(A, half+1, y);    


    int *C;
    C=(int *)malloc(size*sizeof(int));
    int j=x;
    int k=half;
    int i=0;


    while((j<=half)||(k<=y))            
    {
        if(A[j]<=A[k])
        {
            C[i]=A[j];
            j++;
        }
        else
        {
            C[i]=A[k];
            k++;
        }
        i++;
    }


    if(j==(half+1))
    {
        while(i<size)
        {
            C[i]=A[k];
            i++;
            k++;
        }
    }
    else if(k==(y+1))
    {
        while(i<size)
        {
            C[i]=A[j];
            i++;
            j++;
        }
    }

    return C;
}

但是,错误是由不同种类的输入引起的。当我输入一个反向排序和排序的数组时,它按输入顺序返回了输出。随机数会导致malloc“ Assertion Failed”错误。

帮助将不胜感激。

蓝精灵

你的问题

void main()

int main()

int k=half;

int k=half+1;

while((j<=half)||(k<=y)) 

while((j<=half)&&(k<=y))

return C;

for(i=0;i<size;++i){
    A[x+i]=C[i];
}
free(C);
return A;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

malloc.c:3096:SYSMALLOC:断言失败

来自分类Dev

C语言中malloc的工作

来自分类Dev

神秘的malloc:sysmalloc:断言失败错误

来自分类Dev

在C语言中将malloc与struct一起使用

来自分类Dev

malloc和C语言中的free

来自分类Dev

c- sysmalloc 断言问题

来自分类Dev

可以使用strcpy()将malloc数组复制到C语言中的堆栈数组吗?

来自分类Dev

在C语言中,普通数组和使用malloc创建的数组有什么区别?

来自分类Dev

使用向量时sysmalloc断言失败

来自分类Dev

在C语言中:与使用array [] []相比,访问像2D数组一样使用的char * = malloc()更快吗?

来自分类Dev

在C语言中:访问像2D数组一样使用的char * = malloc()比array [] []更快吗?

来自分类Dev

请解释一下* char malloc / realloc / free在C语言中的行为

来自分类Dev

在C语言中,数据段或BSS中的malloc()初始化了全局指针吗?

来自分类Dev

请解释一下* char malloc / realloc / free在C语言中的行为

来自分类Dev

使用malloc的C中的分段错误

来自分类Dev

C ++中的Malloc错误?

来自分类Dev

C-调用memset后出现奇怪的sysmalloc断言错误

来自分类Dev

在C语言中,为什么不使用malloc就不能声明一个指针并将其直接指向一个数字?

来自分类Dev

在C语言中,当使用malloc创建2D数组时,为什么在传递给函数时不需要指定2D数组大小?

来自分类Dev

写入错误:使用execlp的C语言中的管道损坏

来自分类Dev

C ++->断言失败堆栈

来自分类Dev

使用一维数组的C malloc分段错误

来自分类Dev

使用 malloc'ed 字符串的 C 分段错误

来自分类Dev

C:在malloc()中使用getpagesize()

来自分类Dev

错误:C语言中“ pow”的类型冲突

来自分类Dev

C语言中的结构分割错误

来自分类Dev

C语言中的凯撒分割错误

来自分类Dev

澄清C语言中的词汇错误

来自分类Dev

在C语言中,与malloc和变量数组声明有关的两个给定代码段之间有什么区别?

Related 相关文章

  1. 1

    malloc.c:3096:SYSMALLOC:断言失败

  2. 2

    C语言中malloc的工作

  3. 3

    神秘的malloc:sysmalloc:断言失败错误

  4. 4

    在C语言中将malloc与struct一起使用

  5. 5

    malloc和C语言中的free

  6. 6

    c- sysmalloc 断言问题

  7. 7

    可以使用strcpy()将malloc数组复制到C语言中的堆栈数组吗?

  8. 8

    在C语言中,普通数组和使用malloc创建的数组有什么区别?

  9. 9

    使用向量时sysmalloc断言失败

  10. 10

    在C语言中:与使用array [] []相比,访问像2D数组一样使用的char * = malloc()更快吗?

  11. 11

    在C语言中:访问像2D数组一样使用的char * = malloc()比array [] []更快吗?

  12. 12

    请解释一下* char malloc / realloc / free在C语言中的行为

  13. 13

    在C语言中,数据段或BSS中的malloc()初始化了全局指针吗?

  14. 14

    请解释一下* char malloc / realloc / free在C语言中的行为

  15. 15

    使用malloc的C中的分段错误

  16. 16

    C ++中的Malloc错误?

  17. 17

    C-调用memset后出现奇怪的sysmalloc断言错误

  18. 18

    在C语言中,为什么不使用malloc就不能声明一个指针并将其直接指向一个数字?

  19. 19

    在C语言中,当使用malloc创建2D数组时,为什么在传递给函数时不需要指定2D数组大小?

  20. 20

    写入错误:使用execlp的C语言中的管道损坏

  21. 21

    C ++->断言失败堆栈

  22. 22

    使用一维数组的C malloc分段错误

  23. 23

    使用 malloc'ed 字符串的 C 分段错误

  24. 24

    C:在malloc()中使用getpagesize()

  25. 25

    错误:C语言中“ pow”的类型冲突

  26. 26

    C语言中的结构分割错误

  27. 27

    C语言中的凯撒分割错误

  28. 28

    澄清C语言中的词汇错误

  29. 29

    在C语言中,与malloc和变量数组声明有关的两个给定代码段之间有什么区别?

热门标签

归档