看似没有什么问题,但如果你原封不动的将该段代码放在编译器运行时却会导致编译器报错,如图:
然而问题就出在第7行代码:
for (i = 0; i <= 5; i++)
注意,在程序中,arr数组只开辟了...如果您遇到的报错场景比这段函数复杂许多,不要担心,下面会提供给你一些解决思路:
造成这个错误的原因是:
内存越界
解决方向
通常是数组下标访问越界,或是指针访问数组时造成访问越界
注意检查的点...,则可访问的范围是:
从*arr开始,到*(* (arr + m-1) + n-1)为止
需要注意的是, 很多朋友在使用memcpy()函数或memset()函数时也会导致程序报这个错误,以memcpy...为例,主要原因是memcpy()函数拷贝的字节数大于目的地的空间大小了,这样同样会造成内存越界访问,如:
因此需要检查一下传入函数的字节数是否超出了目的地数组的大小....相关文章推荐
【C语言】判断字符类型的三种方法 【C语言】qsort()函数详解:能给万物排序的神奇函数
有关“函数用于调用的参数太少”问题解决办法
【C语言】memset()函数
【C语言】memcpy