LINUX.ORG.RU

История изменений

Исправление korvin_, (текущая версия) :

1) Юзер имеет только интерфейс. Использует только его и shared object.

2) Юзер не имеет доступа к полям структуры. Т.е. mystruct.float_val = 99.99; выполнить нельзя.

Либо используй указатели и создание объектов в куче, типа

mystruct* create_mystruct() {
    mystruct* obj = malloc(sizeof(mystruct));
    obj->float_val = 1.1;
    return obj;
}

void destroy_mystruct(mystruct* obj) {
    free(obj);
}

со всеми плюсами и минусами, либо открывай структуру. Любые другие извращения лишь внесут путаницу и трудноуловимые баги.

Исходная версия korvin_, :

1) Юзер имеет только интерфейс. Использует только его и shared object. 2) Юзер не имеет доступа к полям структуры. Т.е. mystruct.float_val = 99.99; выполнить нельзя.

Либо используй указатели и создание объектов в куче, типа

mystruct* create_mystruct() {
    mystruct* obj = malloc(sizeof(mystruct));
    obj->float_val = 1.1;
    return obj;
}

void destroy_mystruct(mystruct* obj) {
    free(obj);
}

со всеми плюсами и минусами, либо открывай структуру. Любые другие извращения лишь внесут путаницу и трудноуловимые баги.