當我有malloc的字符數組和初始化:內存泄漏釋放字符數組
int i;
int length = 100;
char *arr = (char *) malloc (length * sizeof(char));
for (i = 0; i < length; i++) {
arr[i] = i;
}
然後我中間炭設置爲「\ 0」:
arr[50] = '\0';
在這種情況下, ARR只有無效長度爲50,而不是100 然後我用免費:
free(arr);
可這導致內存泄漏?即操作系統會記錄malloc長度還是隻使用strlen來判斷長度?
「可能與實際執行有差異」 - 是的。特別是因爲你的例子正式導致一個未定義的行爲。 –