可能是重复问题:
跟踪内存的简单C实现?
我需要知道在C程序中到目前为止使用了多少内存,以下是伪代码
#include <stdio.h>
int usedMemory =0;
void *MyMalloc(int size){
usedMemory = usedMemory +size ;
return malloc(size);
}
void MyFree(void *pointer){
/*****************what should i write here????*************/
}
int main(int argc, char *argv[])
{
char *temp1= (char *)MyMalloc(100);
char *temp2= (char *)MyMalloc(100);
/*......other operations.........*/
MyFree(temp1);
MyFree(temp2);
return 0;
}
有人能告诉我在 MyFree 方法中应该写什么吗?它用于减少从 usedMemory 中释放的内存量。
valgrind
应用程序。 - Grambotmalloc
失败怎么办?试试这个:void *MyMalloc(int size) { void *tmp = malloc(size); if (tmp) usedMemory += size; return tmp; }
:) - pmgC++
标签,因为问题特别涉及到C
。 - Nawaz<stdlib.h>
,因此不正确地使用了malloc
),并使用强制转换来关闭编译器(并保留bug)。如果是C ++,则包含的头文件将是<iostrem>
或<cstdio>
或其他没有尾随.h
的东西 :-) - pmg