void* heap = malloc(100);
char *c = heap;
strcpy(c, "Terence");
printf("heap = %s\n", heap);
free(heap);
heap = malloc(100);
printf("heap = %s\n", heap);
heap = Terence
heap =
這就是我的期望,但現在我有一個更爲複雜的代碼,結構類似於上述情況,但輸出是這樣的:
heap = "Terence"
heap = " ren "
類似的東西。
它似乎堆沒有被清理?
有沒有辦法解決它?
或者,對於字符串的緩衝區,只需將第一個字節設置爲零即可。 –