leetcode调试代码遇到上述问题,在vs编译器中不出错。内存是正常申请的,不应该overflow才对。经过逐行注释,发现问题出在array=parray赋值的地方。尝试,1.把parraymalloc申请内存注释掉,问题消失。 2. 把parray赋值给array后,赋值为NUL,问题消失。
推测:函数内的野指针会被检测到。
char* convert(char* s, int numRows)
{
char* parray = NULL;
char *array = NULL;
parray = (char*)malloc(sizeof(char) * size*numRows);
count = (int*)malloc(sizeof(int)*numRows);
// 问题定位
array = parray;
return parray;
}
parray = NULL;
在LeetCode编程挑战中,作者发现代码在Visual Studio编译器中看似正常,但实际运行时遇到内存溢出。问题定位在将`parray`赋值给`array`时。通过实验,发现未初始化的野指针可能是关键。文章探讨了如何避免此类问题并提供了解决策略。
2902

被折叠的 条评论
为什么被折叠?



