Hi,
Bin neu in C. Habe das hier geschrieben:
Das gibt nen Laufzeitfehler:
So hier allerdings funktioniert es:
Ich verstehe nur nicht ganz warum? Da ich nicht nur Quadrate erstellen will, sondern auch andere Muster, wäre die init-Funktion eine Erleichterung...
Grüße
Thomy
Bin neu in C. Habe das hier geschrieben:
C:
typedef struct Objekt_t{
double ypos;
int xpos;
int color;
int height;
int width;
int* net;
int id;
} Objekt;
C:
Objekt* init(int xlen, int width, int height, int id){
Objekt* o=(Objekt*)malloc(sizeof(Objekt));
o->ypos = 0;
o->color=getRand(1,5);
o->xpos=getRand(0,xlen-o->width+1);
o->height=height;
o->width=width;
o->net=(int*)malloc(o->height*o->width*sizeof(int));
o->net[o->height*o->width];
clearData(o->net, o->width, o->height);
o->id=id;
return o;
}
Objekt* createQuadrat(int xlen){
Objekt* o=init(xlen,2,3,0);
o->net[0]=o->color;
o->net[1]=o->color;
o->net[2]=o->color;
o->net[4]=o->color;
return o;
}
So hier allerdings funktioniert es:
C:
Objekt* createQuadrat(int xlen){
Objekt* o=(Objekt*)malloc(sizeof(Objekt));
o->ypos = 0;
o->color=getRand(1,5);
o->xpos=getRand(0,xlen-o->width+1);
o->height=2;
o->width=3;
o->net=(int*)malloc(o->height*o->width*sizeof(int));
o->net[o->height*o->width];
clearData(o->net, o->width, o->height);
o->id=0;
o->net[0]=o->color;
o->net[1]=o->color;
o->net[2]=o->color;
o->net[4]=o->color;
return o;
}
Grüße
Thomy