这个问题是访问了非法内存,网上遇到的同样问题,一般是指针为空,用这个指针去访问数据。
这个错误不能忽略,需要找出代码bug。
我的错误是由于:在API中,通过tempArray的ptr和size来作为中介,读取session通讯得到的数据,但是当API执行完成后,这个对象已经析构,但是我在UT当中仍然想要取到这个临时对象的值,造成了问题。
for (size_t i = 0; i < forwardCoeffsSize; ++i) {
EXPECT_EQ(*(nNISLSCAPI100_getPolynomialScalingParameters_fake.arg2_val)[i],
forwardCoeffs[i]);
}
API:
nNISLSCAPI100_getPolynomialScalingParameters(
sessionObj->getSessionHandle(),
physChans,
&tempForwardCoeffs.ptr,
&tempForwardCoeffs.size,
&tempReverseCoeffs.ptr,
&tempReverseCoeffs.size,
nierr::errStatusThrower());
copyArrayOut(tempForwardCoeffs.ptr, tempForwardCoeffs.size, forwardCoeffs, forwardCoeffsSize, forwardCoeffsSizeOut);
copyArrayOut(tempReverseCoeffs.ptr, tempReverseCoeffs.size, reverseCoeffs, reverseCoeffsSize, reverseCoeffsSizeOut);
tempForwardCoeffs已经析构。