動的配列の要素に値を割り当てようとしていますが、解決策が見つかりません。 scanfを介してユーザーが値を入力した場合の動作を示すビデオはたくさんありますが、ここではそうではありません。私は本当にここで、そこに情報を見つけようと自分で解決しようとしたので、どんな助けも高く評価されます。Cで動的配列に値を格納する方法
//Program co convert decimal number to binary and count zeros
int main()
{
int decimalNum;
int *binaryNum;
int zeroCounter = 0;
int i = 0;
int sizeOfArray;
int decimalNumCopied;
printf("Please enter a number from 0 to 255: ");
scanf("%d", &decimalNum);
decimalNumCopied = decimalNum;
while(decimalNum != 0)//checking number of bits;
{
decimalNum = decimalNum/2;
i++;
}
sizeOfArray = i;
//Trying to allocate just enough memory
binaryNum = (int*)malloc(sizeOfArray * sizeof(int));
while(decimalNumCopied != 0)
{
/*At next step I am trying to assign values to each element of the
array and it doesn't work
*/
binaryNum[i] = decimalNumCopied % 2;
decimalNumCopied = decimalNumCopied/2;
i--;
}
for(i = 0; i <= sizeOfArray; i++)
{
printf("%d", binaryNum[i]);
if(binaryNum[i]== 0){zeroCounter++;}
}
printf("\nThere are %d zeroes", zeroCounter);
free(binaryNum);
return 0;
}
そして、何があなたのコードが間違っていますか?どのような問題がありますか?あなたの質問は何ですか*?しばらく時間を取って[良い質問をする方法を読む](http://stackoverflow.com/help/how-to-ask)を参照してください。 –
また、[mallocの結果をキャストしない](http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc) – UnholySheep
を1つエラーでオフにします。有効な配列インデックスは '0'から' sizeOfArray - 1'です。 'while(decimalNumCopied!= 0)'の本文は、最初の繰り返しで 'binaryNum'の最後を1コピーします。 – Peter