このプログラムを GDB で実行すると、target/replace malloc ステートメントを通過した後、[1] 要素には常に不適切な値が与えられます。
たとえば (GDB を使用):
(gdb) p target[0]
$1 = -48 '\320'
(gdb) p target[1]
$2 = 101 'e'
(gdb) p target[2]
$3 = -4 '\374'
(gdb) p target[3]
$4 = -73 '\267'
他の変数の値は次のとおりです: replace[1] = 'd'
なぜこれを行うのですか?また、他に重要な情報を省略した場合はお知らせください。
void replace(char** list, int wordLine, int targetAmount)
{
char** final;
char* target;
char* replace;
int wCounter, cCounter, i, hashCounter = 0, addLetter = 0;
int copyWord, countChars, numOfWords, finalWords = 0;
target = (char*)malloc(targetAmount); //allocating memory for
replace = (char*)malloc(targetAmount); //these char*'s
// other stuff here
}