-1
在這個程序中,我必須創建一個指針系統,在讀取較大輸入的80個字符後,將提供一個pointer-to-pointer-to-character
操作。然後將結果發送到一個函數,以確定總輸入中的單詞數量和它們包含的平均字母數量。我的問題是,我不知道如何創建指針系統,而不會產生exc_bad_access
警告。此外,我無法找到適合我需求的malloc和free組合。任何幫助,這將不勝感激。使用指針發送數組的指針C項目
inputPtr = (char*)malloc(81 * sizeof(char));
while (fgets(wordy, 81, stdin) != NULL) {
numChar = strlen(wordy);
inputPtr = wordy;
for (i = 0; i < groupRange; ++i) {
sentPtr[i] = &inputPtr;
}
if (numChar == 80) {
groupRange++;
}
free(inputPtr);
printwords(*sentPtr, numChar);
}
你似乎試圖在這裏做字符串複製:'inputPtr =羅西;',我想。在C中,字符串不能像那樣工作。在創建「指針系統」之前,您可能需要回過頭幾步並瞭解C字符串,無論您的意思如何。但是你應該考慮的一件事是,爲什麼你只有一次「malloc」,但是在循環中「free」? – hyde
您在第一次迭代時泄漏了爲'inputPtr'分配的內存。我們不知道「羅嗦」是什麼。瘋狂的猜測:這不是你的真實代碼? – WhozCraig
停止「試圖找到malloc和free的組合,這將減輕我的這一點」,因爲猜測不會奏效。請嘗試從邏輯上理解它。如果你還沒弄明白,那麼你可能需要了解更多關於指針,字符串或'malloc'的信息,那很好。 – immibis