在GDB中執行此程序,並且在它通過目標/替換malloc語句後,[1]元素總是給出一個尷尬的值。在使用malloc時出現問題
例如(使用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'
對於其他變量,它的值是:取代[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
}
您不需要在c程序中投射malloc的返回值。 – 2013-02-11 03:16:51