Ho scritto il seguente codice per convertire un numero decimale in base2. probabilmente non il migliore, ma ha funzionato su Eclipse. tuttavia, quando provo a eseguirlo su Visual Studio, ottengo questo messaggio di errore sulla riga 10 (sottolineato): "l'espressione non ha valutato una costante". Perché è quello?espressione non valutata a una costante- C++
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;
}