我想了解的时机malloc和free。所以我写了这个简单的程序:
#include <stdlib.h>
#include <stdio.h>
int
main()
{
long i;
for(i = 2; i < 10000000000; i*=2) {
struct timeval start, end;
double timing ;
long j;
gettimeofday(&start, NULL);
double *vect = malloc((size_t) i * sizeof(*vect));
if (!vect) {
printf("malloc failed\n");
exit(-1);
}
gettimeofday(&end, NULL);
timing = (double) (end.tv_sec * 1e6 + end.tv_usec) - (start.tv_sec * 1e6 + start.tv_usec);
printf("size %ld allocating (%f)\t", i * sizeof(*vect), timing);
/* I do this to avoid lazy allocation */ …Run Code Online (Sandbox Code Playgroud)