问题描述
在一个函数调用中,使用二级指针作为函数参数,传递一个字符串指针数组,但是在访问的时候,却出现了运行时错误,具体表现为“0xCCCCCCCC 读取字符串的字符时出错”。
第一反应是字符串忘记初始化了,但是一检查不对,我初始化了啊。怎么会出现这种问题,然后通过单步调试发现是传值的二级指针指向的指针数组访问越界了,代码片段如下——
while ((string = *strings++) != NULL) {
while (*string != '\0') {
if (*string++ == ‘a’)//出错的地方,此处string = 0xcccccccc,读取字符串字符时错误
...
}
}
VS认为越界的字符串指针元素是未初始化的&