Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void reduce_binary(void *s, void *d){
- int *ret = d;
- char *str = s;
- if (strlen(str) == 32 && *str-48 == 1){
- *ret -= INT_MAX;
- *ret -= 1;
- } else {
- *ret += (*str - 48) * (1 << (strlen(str) - 1));
- }
- }
- void binStrHelp(void *s, void *d){
- char **strs = s;
- int *ret = d;
- reduce(*strs, strlen(*strs), sizeof(char), ret, reduce_binary);
- }
- void set_zero(void *s, void *d){
- int *src = s;
- *src = 0;
- }
- int *binStrArrToIntArr(char **strs, size_t n) {
- int *ret = malloc(sizeof(int) * n);
- map(ret, n, sizeof(int), ret, sizeof(int), set_zero);
- map(strs, n, sizeof(char*), ret, sizeof(int), binStrHelp);
- return ret;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement