flag的值在函数中改变了吗?
建议这样:
int myFlag=flag;
....
....
rerurn myFlag;