Ich versuche, Elemente im dynamischen Array Werte zuzuweisen, kann aber keine Lösung finden. Es gibt viele Videos, die zeigen, wie es funktioniert, wenn der Wert vom Benutzer über scanf eingegeben wird, aber hier ist es nicht der Fall. Ich habe wirklich versucht, hier und da Informationen zu finden und es selbst zu lösen, damit jede Hilfe sehr geschätzt wird. Hier ist mein Code:Wie Werte im dynamischen Array in C gespeichert werden
//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;
}
Und was ist falsch an Ihrem Code? Welche Probleme hast du damit? Was ist deine Frage*? Bitte nehmen Sie sich etwas Zeit (lesen Sie, wie Sie gute Fragen stellen können) (http://stackoverflow.com/help/how-to-ask). –
Auch [werfen Sie nicht das Ergebnis von 'malloc'] (http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc) – UnholySheep
Aus mit einem Fehler. Gültige Array-Indizes sind "0" bis "sizeOfArray - 1". Der Körper der 'while (decimalNumCopied! = 0)' kopiert eins nach dem Ende von 'binaryNum' in der ersten Iteration. – Peter