diff options
author | Markus Ongyerth <ongy@ongy.net> | 2018-07-07 17:56:37 +0200 |
---|---|---|
committer | Markus Ongyerth <ongy@ongy.net> | 2018-07-14 09:52:34 +0200 |
commit | 74ca2f8fcf10f5b00b4a3eeb121e418e1b5212e0 (patch) | |
tree | 42e3f80ac6870482c00d221d7a342ca144534556 /util/array.c | |
parent | 43b20bfea2070df78ba7cb12a78a5f7a42dd21f5 (diff) |
Another round of feedback from acrisci
Diffstat (limited to 'util/array.c')
-rw-r--r-- | util/array.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/util/array.c b/util/array.c new file mode 100644 index 00000000..9ee39d33 --- /dev/null +++ b/util/array.c @@ -0,0 +1,21 @@ +#include <stdlib.h> +#include <stdint.h> + +// https://www.geeksforgeeks.org/move-zeroes-end-array/ +size_t push_zeroes_to_end(uint32_t arr[], size_t n) { + size_t count = 0; + + for (size_t i = 0; i < n; i++) { + if (arr[i] != 0) { + arr[count++] = arr[i]; + } + } + + size_t ret = count; + + while (count < n) { + arr[count++] = 0; + } + + return ret; +} |