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 ++很新,所以我需要一些如何诊断这个问题的指导。
提前致谢。
答案 0 :(得分:0)
您是否已实施caddr_t sbrk(int incr)
?
如果不是这可能是问题。