l'expression n'a pas évalué à une constante - c ++

J'ai écrit le code suivant pour la conversion d'un nombre décimal de base2.
pas le meilleur sans doute, mais il a travaillé sur eclipse.
cependant, lorsque j'essaie de le lancer sur visual studio, j'obtiens ce message d'erreur sur la ligne 10 (souligné): "expression n'a pas d'évaluer à une constante".
Pourquoi est-ce?

long base2(int number) {
    int remainder, sizeOfRetNum, isNegative = 0;
    if (number<0)
        isNegative = 1;
    int temp = number;
    while (temp != 0) {
        sizeOfRetNum++;
        temp = temp / 2;
    }
    char ansString[sizeOfRetNum]; //********line 10********
    int j = sizeOfRetNum - 1;
    while (number != 0) {
        remainder = number % 2;
        number = number / 2;
        if (remainder == 0)
            ansString[j] = '0';
        else
            ansString[j] = '1';
        j--;
    }
    long ansNum = atol(ansString);
    if (isNegative == 1)
        ansNum = -ansNum;
    return ansNum;
}

source d'informationauteur John