我正在嘗試使用C++而不是C來爲我的基於MIPS的嵌入式設備構建我的應用程序。首先,我有一個鏈接問題,你可以看到here。解決了這個問題,我可以成功構建我的應用程序。現在,我想使用std::vector
類。我的代碼是:使用向量導致的段錯誤
#include <vector>
using namespace std;
int main() {
vector<char> v;
v.push_back('s');
return 0;
}
當vector<char> v;
線執行時,屏幕上出現Segment Fault
消息。對於更多測試,我測試了new
運營商,它工作正常。我正在使用mipsel-elf-g++
來構建我的應用程序。
有什麼不對?
從您之前的問題看來,您的C++編譯器很破碎。如果第一次使用'malloc'和'new' segfault,沒有理由認爲'std :: vector'不會。 http://stackoverflow.com/questions/8956979/segment-fault-caused-by-using-new-and-malloc – NPE
代碼似乎很好。如果是段錯誤,那麼作爲一個工作可以在聲明'vector'時分配一些空間。即'vector v(100);'並試一試。 –
iammilind
@aix:'malloc'和'new'問題已修復,現在我可以同時使用這兩個問題。在我的問題中,我提到'我測試了新的操作符並且工作正常',以強調存在任何內存分配問題。 –