Objective-Cライブラリをクロスプラットフォームにするために、Cライブラリに変換しました。しかし、私はこのことを処理するために送付するまで、すべてが大丈夫だと思われます。Malloc'ed文字列にガベージ値が含まれています
エラーが発生した時点です。
いくつかの改訂を振り返ってみると、私はデバッガで何か気づいた。
右そうのようなmallocされた文字列の後:
char *theString = malloc(SOME_SIZE * sizeof(char));
私はtheStringはX03を\と*さtheStringは "3 '\ 003'" であることがわかります。
私はstrcatや何かを与えていないので、これは単なる奇妙な記憶だと思っていましたが、その奇妙な開始キャラクタが持ち越して、同様のmallocを実行するたびに繰り返します。
通常の処理の点では問題ありません。残念ながら、私はそれが何であるか分からない、そうでなければ、私はちょうどその最初のキャラクターか何かを切り捨てるような劇的な何かをするだろう。
NSStringを安全に変換したいと思ったら、それはどういうものなのですか?
callocは、必要な場合以外は使用しないでください(構造体や配列など)。 –
これについて詳しく説明できますか?私は、単一の要素へのポインタがcallocを使用してはならないことを意味しています(組込み型の場合と同じです)。 – Sam
ゼロ調整は潜在的に高価です。また、以前はcalloc()を使用していて、malloc()の後にbzero()を使用するように切り替えることですべてが解決されました。 –