0

Android NDK でのこの呼び出し

random_shuffle(node->elements.front(), node->elements.back());

SIGBUS または SIGSEGV を引き起こします。私は gnustl を使用しています (共有/静的に違いはありません)。また、例外のサポートが必要なため、stl ライブラリを切り替えることもできません。これまでのところ、他のすべての stl 関数は問題なく動作します。

4

1 に答える 1

2

とを使用node->elements.begin()node->elements.end()ます。

front()back()イテレータではなく、要素を返します。node->elementsそれはポインタの集まりだと思います。その場合、random_shuffle最初の要素のアドレスと最後の要素のアドレスの間でメモリ内にあるものをランダム化しようとします。これはあなたが望むものではありません。

于 2012-07-31T14:03:12.010 に答える