#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct data{
int data_id; // irgendeine Variable
int a_size;
char vals[]; // FAM
};
struct data *createData(struct data *s, int id, int a_size, float a[]) {
s
= malloc( sizeof(*s
) + sizeof(float) * a_size
); s->data_id = id;
s->a_size = a_size;
memcpy(s
->vals
, a
, sizeof(float) * a_size
); return s;
}
void printData(struct data *s){
printf("Data_id : %d\n", s
->data_id
); int i;
for ( i=0 ; i<s->a_size ; i++){
}
}
int main(void) {
float A[] = {1.0, 7.5, 9.3};
float B[] = {2.0, 2.8, 3.0, 5.5};
struct data *s1 = createData(s1, 523, 3, A);
struct data *s2 = createData(s2, 206, 4, B);
printData(s1);
printData(s2);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKCnN0cnVjdCBkYXRheyAKICAgaW50IGRhdGFfaWQ7IC8vIGlyZ2VuZGVpbmUgVmFyaWFibGUKICAgaW50IGFfc2l6ZTsKICAgY2hhciB2YWxzW107IC8vIEZBTQp9OyAKCnN0cnVjdCBkYXRhICpjcmVhdGVEYXRhKHN0cnVjdCBkYXRhICpzLCBpbnQgaWQsIGludCBhX3NpemUsIGZsb2F0IGFbXSkgeyAKICAgIHMgPSBtYWxsb2MoIHNpemVvZigqcykgKyBzaXplb2YoZmxvYXQpICogYV9zaXplKTsgCiAgICBzLT5kYXRhX2lkID0gaWQ7CiAgICBzLT5hX3NpemUgPSBhX3NpemU7CiAgICBtZW1jcHkocy0+dmFscywgYSwgc2l6ZW9mKGZsb2F0KSAqIGFfc2l6ZSk7IAogICAgcmV0dXJuIHM7IAp9IAoKdm9pZCBwcmludERhdGEoc3RydWN0IGRhdGEgKnMpeyAKICAgIHByaW50ZigiRGF0YV9pZCA6ICVkXG4iLCBzLT5kYXRhX2lkKTsKICAgIGludCBpOwogICAgZm9yICggaT0wIDsgaTxzLT5hX3NpemUgOyBpKyspewogICAgCXByaW50ZigiJWYsICIscy0+dmFsc1tpXSk7CiAgICB9CiAgICBwcmludGYoIlxuIik7Cn0gCgoKaW50IG1haW4odm9pZCkgewoJZmxvYXQgQVtdID0gezEuMCwgNy41LCA5LjN9OwoJZmxvYXQgQltdID0gezIuMCwgMi44LCAzLjAsIDUuNX07CglzdHJ1Y3QgZGF0YSAqczEgPSBjcmVhdGVEYXRhKHMxLCA1MjMsIDMsIEEpOwoJc3RydWN0IGRhdGEgKnMyID0gY3JlYXRlRGF0YShzMiwgMjA2LCA0LCBCKTsKCXByaW50RGF0YShzMSk7CglwcmludERhdGEoczIpOwoJcmV0dXJuIDA7Cn0K