1

次のコードでは、2つのnullで終了するC文字列(charポインター)をPythonタプルにパックしようとしています。

printf("word1 = '%s', word2 = '%s'\n", words1->wordArray[i], words2->wordArray[i]);
cmpArgs = Py_BuildValue("ss", words1->wordArray[i], words2->wordArray[i]);
printf("%s\n", PyString_AsString(PyTuple_GetItem(cmpArgs, 0)));

これにより、次のような出力が生成されます。

word1 = '20', word2 = '20'
i┴

タプル内の文字列と外部の文字列が異なるのはなぜですか?私は何が間違っているのですか?また、このタプルの参照カウントのインクリメントとデクリメントについて心配する必要がありますか?(CにPyObject *として渡されるPython関数に渡すために作成しています)

4

1 に答える 1

1

私はそれを手に入れたと思います-以前はスタックスペースを使用して奇妙な方法で単語を保存していました。ヒープにスペースを手動で割り当て始めたので、修正されたようです。

于 2012-11-01T19:56:19.550 に答える