我的C應用程序按字符讀取文件字符並將char值存儲在char數組中。在某個點上,char數組需要被清除,所以可以輸入另一個值。但是,當我嘗試清除它時,字符仍然保留在陣列中。無法清除字符數組
這是我如何重置陣列:
void resetArray(){
operand[0] = '\0';
}
我在做什麼錯?
我的C應用程序按字符讀取文件字符並將char值存儲在char數組中。在某個點上,char數組需要被清除,所以可以輸入另一個值。但是,當我嘗試清除它時,字符仍然保留在陣列中。無法清除字符數組
這是我如何重置陣列:
void resetArray(){
operand[0] = '\0';
}
我在做什麼錯?
將第一個字符設置爲空終止符將使數組的其餘部分完整保留在內存中。打印字符串將不會打印它們,但它們仍然存在。
您必須清除剩餘的內存。
memset(array , 0 , sizeof(array)) ;
太棒了!謝謝! – Coder404
上面假設'數組'實際上是一個數組而不是一個指針,這在你的例子中可能是正確的,但是對於動態分配需要牢記。 – user3303729
@ user3303729我從來沒有使用單詞指針,所以它不承擔任何事情。 :) – this
什麼是你的數組操作數定義爲?你如何訪問它? – brokenfoot
@brokenfoot'char operand [4];' – Coder404
我希望你知道這一點:如果你的數組包含「ABCDE \ 0」,那麼你重置它的方式使它成爲「\ 0BCDE \ 0」。你是什麼意思,你不能清除它?發佈一些更多的代碼和預期的和實際的輸出。 – brokenfoot