原来是指针的问题

今天测试一个功能,在已有的虚拟文件中增加一个文件,该文件已经在虚拟文件中存在,如果新增加的文件大小比原来的大,则进行重新写入的功能。
但测试却始终不能通过,经过近一个小时的研究吧,找出了这样一行代码:
VIRTUAL_FILE_INDEXINFO* pIndexInfo = newVIRTUAL_FILE_INDEXINFO();
之后在接下来的尽心中,又:
*pIndexInfo = *iter;(iter为vector<VIRTUAL_FILE_INDEXINFO>的迭代器);
这行代码的意思是将*iter的值复制到*pIndexInfo中,而我是想将iter所指向的内容修改,但在接下来的操作中都是在用pIndexInof->??进行操作,所以之后的函数退出,白白浪费了。

还是指针的问题,我的修改为:
VIRTUAL_FILE_INDEXINFO* pIndexInfo = NULL;
接下来的代码是:
pIndexInfo = &(m_vectorIndexInfo.at(nPos));
这样,修改的pIndexInfo的数据也就是修改了原位置的数据了。

同时还是说明自己的经验少啊少,多多积累。

发表评论

邮箱地址不会被公开。 必填项已用*标注

* Copy This Password *

* Type Or Paste Password Here *