char指针是struct array内存泄漏

Mar*_*arc 5 c memory malloc pointers memory-leaks

我在一个更大的程序中有内存泄漏,我相信这是它的原因.

#include <stdlib.h>
#include <Windows.h>

typedef struct _struct{
    char* name;
} str;

int main() {
    system("PAUSE");

    str* Character = (str*)malloc(sizeof(str) * 20000);

    for(int i = 0; i < 20000; i++){
        Character[i].name = (char*)malloc(20000);   // Assign memory.
    }

    for(int i = 0; i < 20000; i++){
        free(Character[i].name);            // Free memory.
    }

    free(Character);
    system("PAUSE");
}
Run Code Online (Sandbox Code Playgroud)

第一次暂停时的记忆:~500K.

第二次暂停时的记忆:~1.7M.

使用VS2012进行测试.有任何想法吗?