こんにちは、私の問題は説明が難しいので、ここにコード セクションを投稿し、例を挙げて問題を説明します。
このコードには大きな配列と小さな配列があり、大きな配列は小さな部分に分割され、小さな配列に格納され、小さな配列はそのコンテンツを画面に出力しています。
その後、小さな配列の割り当てられたメモリを解放し、大きな配列の次の部分で再度初期化します。
//this code is in a loop that runs until all of the big array has been copied
char* splitArray = new char[50];
strncpy(splitArray, bigArray+startPoint, 50); //startPoint is calculated with every loop run, it marks the next point in the array for copying
//output of splitArray on the screen here
delete splitArray;
//repeat loop here
今私の問題は、出力された文字列の最後に毎回ランダムな記号があることです。例えば"some_characters_here...last_char_hereRANDOM_CHARS_HERE".
詳しく調べたところ、splitArray のサイズは実際には 50 ではなく、null ターミネータが 64 の 64 であることがわかりました。そのため、bigArray から splitArray にコピーすると、実際の文字列の後に 14 個のランダムな文字が残っています。もちろん、私はそれらを出力したくありません。
簡単な解決策は、手動で splitArray の null ターミネータを [50] に設定することですが、プログラムは再び配列の削除に失敗します。
これに対する解決策を見つけるのを手伝ってくれる人はいますか? できればいくつかのサンプルコードを使用してください、ありがとう。