我unordered_map
在 C++ 中用作哈希图,但每当我尝试在其中存储任何内容时,我都会得到:
Floating point exception: 8
谁能指出错误是什么?以下是我如何初始化我的地图(table_entry
只是一个结构):
std::tr1::unordered_map<unsigned short, table_entry*> forwarding_table;
然后我通过以下方式输入一个条目:
unsigned short dest_id = 0;
table_entry *entry = (table_entry *)malloc(sizeof(table_entry));
forwarding_table[dest_id] = entry;
我的结构的定义是:
typedef struct table_entry {
unsigned short next_hop;
unsigned int cost;
} table_entry;
就我的编译器版本而言,当我运行时,g++ -v
我得到了这个:
Configured with: /private/var/tmp/llvmgcc42/llvmgcc42-2336.11~182/src/configure --disable-checking --enable-werror --prefix=/Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2 --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-prefix=llvm- --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin11 --enable-llvm=/private/var/tmp/llvmgcc42/llvmgcc42-2336.11~182/dst-llvmCore/Developer/usr/local --program-prefix=i686-apple-darwin11- --host=x86_64-apple-darwin11 --target=i686-apple-darwin11 --with-gxx-include-dir=/usr/include/c++/4.2.1
Thread model: posix
gcc version 4.2.1