malloc动态开辟空间后使用大小超过这个空间了

使用malloc开辟的空间,如果使用超过了这个空间程序是会挂掉还是继续执行下去呢,如果执行下去会怎么执行下去呢

越界读取可能会挂掉,越界写一般都挂掉

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/1098772
  • 这篇博客你也可以参考下:在使用malloc函数时遇见的常见错误
  • 这篇博客也不错, 你可以看下在使用malloc函数时遇见的常见错误
  • 除此之外, 这篇博客: 使用malloc函数或new运算符为链表结点分配内存空间中的 malloc函数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

     

    malloc函数是C语言中stdlib.h头文件下用于申请动态内存的函数,其返回类型是申请的同变量类型的指针,其基本用法如下:

    typename *p=(typename*)malloc(sizeof(typename));

    以申请一个int型变量和一个结点型node为例:

    int *p=(int *)malloc(sizeof(int));
    node *p=(node *)malloc(sizeof(node))

    这个写法的逻辑是:以需要申请的内存空间大小(即sizeof(node))为malloc函数的参数,这样,malloc函数就会向内存申请一块大小为sizeof(node)型的空间,并且返回指向这块空间的指针。但是此时这个指针是一个未确定类型的指针void *,因此需要把它强制转化为node *型的指针,因此在malloc之前加上node *,这样等号右边就得到了一个node *的指针;如果申请失败,会返回NULL

    如果只是申请一个链表结点的话是不会失败的,失败一般是发生在使用malloc申请了较大的动态数组,即

    int *p=(int *)malloc(1000000*sizeof(int));

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^