STM32F7、GCC、FatFS
以下代码破坏了 retVal。(例如,向量是用一个对象创建的,但是当你检查它时,它的数量是荒谬的)
std::vector<uint8_t> SDManager::Test()
{
std::vector<uint8_t> retVal(1);
FIL file;
retVal.push_back(0xFE);
asm("nop");
return retVal;
}
如果您注释掉“FIL 文件”,那么向量就可以了。但是,一旦您重新使用 FIL 结构,它就会破坏向量。
下一个奇怪的事情是,如果我要创建另一个向量,然后返回使用它作为函数返回对象。原始向量变得很好,但是新返回的向量被破坏了。
我对 c++ 很陌生,所以我需要一些关于如何诊断这个问题的指导。
提前致谢。