I'm not entirely sure that I understand your question, as you flagged this question as C and your code example is C++, but either way, if you're attempting to extend ruby you'll need to convert ruby values to C types, and if you plan on using C++ data structures, from C types to C++ objects.
Using the Ruby C Api:
#include "ruby.h"
//Define module my_module (this can be any name but it should be the name of your extension
VALUE MyModule = Qnil;
//Initialization prototype - required by ruby
void Init_MyModule();
//method prototype declarations - all methods must be prefaced by method_
VALUE method_get_some_ruby_value();
//actual method
VALUE get_some_ruby_value(VALUE self, VALUE some_value)
{
//If your value is a ruby string - the StringValue function from ruby will ensure
//that you get a string no matter what, even if the type being passed is not a string.
VALUE r_string_value = StringValue(some_value);
//Now we tell the Ruby API to give us the pointer to the ruby string
//value and we assign that to a native char * in C.
char *c_string_value = RSTRING_PTR(r_string_value);
//Now do something with the char * - for example, turn it into a C++ string
std::string str(c_string_value);
// ...do something useful here...
return Qnil; // If you want to return something back to ruby, you can return a VALUE.
}
//Ruby calls this to initialize your module in ruby
VALUE Init_MyModule()
{
//This defines your module in ruby
MyModule = rb_define_module("MyModule");
//This defines the method - the module it is in, the ruby method name, the actual method ruby will call, and the number of arguments this function is expected to take
rb_define_method(MyModule, "get_some_ruby_value", get_some_ruby_value, 1);
}
If you want to learn about passing structs back and forth between Ruby/C/C++, you'll need to have a thorough understanding of Ruby and the Ruby C API before you start trying to work with C++ objects.
Here are a few excellent resources to get you started:
http://silverhammermba.github.io/emberb/c/
http://java.ociweb.com/mark/NFJS/RubyCExtensions.pdf