#include #include #include int main(int argc, char **argv) { if (argc < 2) { fprintf(stderr, "usage: %s \n", argv[0]); return 1; } long mb = strtol(argv[1], NULL, 10); if (mb <= 0) return 1; size_t bytes = (size_t)mb * 1024 * 1024; char *p = (char *)malloc(bytes); if (!p) { fprintf(stderr, "malloc failed\n"); return 2; } for (size_t i = 0; i < bytes; i += 4096) { p[i] = (char)(i & 0xff); } volatile char sink = p[bytes - 1]; (void)sink; printf("ok %ld\n", mb); return 0; }