Guten Tag Community,
zurzeit beschätige ich mit dem Allokieren von Speicher in C.
Ich habe folgenden C-Code:
Jetzt spuckt der Compiler einen Fehler aus:
Dieser Fehler kommt mir bekannt vor, wenn ich anstatt einem Vergleichsoperanten den Zuweisungsoperanten nehmen!
Aber in diesem Falle soll dem ptr ja ein Wert zurgewiesen werden und nicht verglichen werden.
Weiß da zufällig jemand, wie ich dem ptr den Wert richtrig zuweise, oder generell, wo mein Fehler liegt?
Liebe Grüße
zurzeit beschätige ich mit dem Allokieren von Speicher in C.
Ich habe folgenden C-Code:
C-Quellcode
- #include <stdio.h>
- #include <stdlib.h>
- void *malloc(unsigned int length);
- int main(){
- int i;
- int size;
- int *ptr;
- printf("Größe eingeben:");
- scanf("%d", &size);
- ptr = (int*) malloc(size*sizeof(int));
- for (i =0; i <size; i++){
- (int*)ptr[i] = i;
- }
- for (i =0; i <size; i++){
- printf("array[%d] = %d",i, ptr[i]);
- }
- return 0;
- }
Jetzt spuckt der Compiler einen Fehler aus:
error: lvalue required as left operand of assignment
Dieser Fehler kommt mir bekannt vor, wenn ich anstatt einem Vergleichsoperanten den Zuweisungsoperanten nehmen!
Aber in diesem Falle soll dem ptr ja ein Wert zurgewiesen werden und nicht verglichen werden.
Weiß da zufällig jemand, wie ich dem ptr den Wert richtrig zuweise, oder generell, wo mein Fehler liegt?
Liebe Grüße
Wo viel kopiert wird, wird wenig kapiert.
Andreas Tenzer
(Dt. Philosoph, * 1954)
Andreas Tenzer
(Dt. Philosoph, * 1954)