c++ - Process exited with return value 3221226356

来源:3-3 归并排序法的优化

kinpowoo

2019-02-22

用 Dev-c++时会报这个错退出程序,说是数组越界访问,我的n设的是100万,报错指向 T aux[r-l +1]; 这里

写回答

1回答

liuyubobobo

2019-02-23

T aux[r-l+1]使用静态分配内存,数据量过大可能导致系统栈溢出,看看是不是这里的问题,尝试使用动态内存分配?:)


具体可以参考课程官方代码:12,13,14,16,和39行

https://github.com/liuyubobobo/Play-with-Algorithms/blob/master/03-Sorting-Advance/Course%20Code%20(C%2B%2B)/02-Merge-Sort/main.cpp 


另外,课程的补充代码中给出了另外一种归并排序的优化方法,可以之开辟一个临时的aux空间,传给递归函数使用,具体可以参考:https://github.com/liuyubobobo/Play-with-Algorithms/blob/master/03-Sorting-Advance/Course%20Code%20(C%2B%2B)/Optional-01-MergeSort-Create-aux-Array-Out-of-Merge/MergeSort2.h


注意68, 69, 70行的注释以及后续的调用过程的改变:)


继续加油!:)

0
0

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11187 学习 · 1614 问题

查看课程