10進数をbase2に変換する次のコードを記述しました。 おそらく最高のものではありませんが、それは日食で働いていました。 しかし、私はVisual Studio上でそれを実行しようとすると、10行目(強調表示)にこのエラーメッセージが表示されます。「式が定数に評価されませんでした」 なぜですか?式が定数に評価されていない
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;
}