char *binaryString[100];
// Вы создаете массив указателей в этом сценарии, вместо этого используйте char binaryString[100]
;
int value = (int)strtol(binaryString, NULL, 2);
// 101010111100110100110001001001000101
Это 36-битное число, int (в большинстве реализаций32 бит).вместо этого используйте long long
(64 бит в Visual C ++) в качестве типа & strtoll
в качестве функции.
printf("%i \n",value)
Должно быть printf("%lld \n", value)
.
В итоге:
#include "stdio.h"
#include "stdlib.h" // required for strtoll
int main(void)
{
char str[100] = "101010111100110100110001001001000101";
long long val = 0;
val = strtoll(str, NULL, 2);
//output string as int
printf("%lld \n", val);
return 0;
}