Given a struct, e.g.
typedef struct { int value; } TestStruct;
Why does the following code (in the context of an Objective-C class running on the IPhone) throw a ‘non-aligned pointer being freed’ exception?
TestStruct ts = {33}; free(&ts);
N.B. My uber goal is to use a C library with many vector-math functions, hence the need to find out some viable way to mix C and Objective-C
It looks to me like you’re trying to free a stack or static variable. You need to have malloc()’d something for it to be able to be free()’d.
Try this instead:
For those more familiar with object-oriented languages, you might find it helpful to create a constructor:
This enables you to allocate a struct and set the values in one step. Just remember that this value should be freed once it’s no longer useful: