On 7/4/07, foobar <[EMAIL PROTECTED]> wrote:
hi,as the title allready suggests i'm looking for a way to return a list from within a c-function. I know how to return a list, but what i don't know is how to fill some of the elements with strings. More importantly how does the allocation-deallocation- scheme look like in this situation? Here is a minimal example of what i want to do C_word return_a_list(){ int a = 1; char *str = "just a test"; /* now i need to make the string an object that can be carried around by the list. But how? C_string or C_string2? */ /* finally return the list with the ??? actually being something reasonable*/ C_return(C_h_list(2,C_fix(a),???); } How can this be done in a safe way?
You have to use storage that can be garbage collected, which means stack storage. I recommend "foreign-primitive" and use "C_alloc" to allocate the storage and "C_string2" to allocate the string. cheers, felix _______________________________________________ Chicken-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/chicken-users
