2道笔试题求助。高手来。请写下你认为满意的答案。
2.
[解决办法]
int ReadShareBuff(char* pLocalBuffer, int &nLocalBufferSize)
{
if (NULL == pLocalBuff){
return -1;
}
lock();
if (g_nBufferSize > nLocalBufferSize) {
unlock();
return -2;
}
memcpy(pLocalBufferSize, g_pBufferSize, g_nBufferSize);
nLocalBufferSize = g_nBufferSize;
unlock();
return 0;
}
A
B , 比如m==1,n==3
[解决办法]
1) 第一题同意#1的观点
2) 第2题 我觉得有问题啊 首先 A和B 肯定是都不对的
m+n 可能有溢出 导致 m+n已经超过最大的整型了
m/2 + n/2 如果m和n都是奇数,则2次除法导致2次精度的误差
建议方法2为 (int)(( float)(m/2.0) + (float)(n/2.0))