test memory limit
Some checks failed
memory-limit / Build judge (push) Successful in 18s
memory-limit / Linux / gcc (push) Failing after 14s
memory-limit / Linux / clang (push) Failing after 15s
memory-limit / Windows / clang (push) Failing after 16s
memory-limit / Windows / msvc (push) Failing after 17s
Some checks failed
memory-limit / Build judge (push) Successful in 18s
memory-limit / Linux / gcc (push) Failing after 14s
memory-limit / Linux / clang (push) Failing after 15s
memory-limit / Windows / clang (push) Failing after 16s
memory-limit / Windows / msvc (push) Failing after 17s
This commit is contained in:
27
example/mem-limit/solution.c
Normal file
27
example/mem-limit/solution.c
Normal file
@@ -0,0 +1,27 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
if (argc < 2) {
|
||||
fprintf(stderr, "usage: %s <megabytes>\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;
|
||||
}
|
||||
Reference in New Issue
Block a user