the free() prob cannot be set up: fields of a struct info is hidden when compiled by clang