新人请教2进制转10进制程序报错

新人请问2进制转10进制程序报错?
#include "stdio.h"
#include "math.h"
#include "string.h"
int BinaryToDecimal(int bin[])
{
int length;
int decimal;
int j,i;

for (length = sizeof(bin);length >= 0;length--)
{
for(i=0;i<=10;i++)
{
int z = length -1;
decimal += bin[length]*pow(2.0,z);
}
}
return decimal;

}
int main()
{
int dec;
int len;
int bin[10];
printf("input a binary string!\n");
for (int i=0;i<10;i++)
{
scanf("%d",&bin[i]);
}
dec = BinaryToDecimal(bin);
printf("The Decimal = %f\n",dec);
}

提示说变量没有被初始化??不懂,求解.
谢谢

------解决方案--------------------
C/C++ code

#include "stdio.h"
#include "math.h"
#include "string.h"
int BinaryToDecimal(int (*bin)[32])
{
    int decimal = 0;
    for(int i = 0; i < 32; ++i)
    {
        decimal <<= 1;

        decimal += (*bin)[i] - '0';
    }
    return decimal;

}
int main()
{
    int dec = 0;
    //int len;
    int bin[32] = {0};
    printf("input a binary string!\n");
    for (int i=0;i<32;i++)
    {
        bin[i] = getchar();
    }
    dec = BinaryToDecimal(&bin);
    printf("The Decimal = %f\n",dec);
}