diff --git a/ndn-cpp/Name.cpp b/ndn-cpp/Name.cpp
index 5a62801..c777ebe 100644
--- a/ndn-cpp/Name.cpp
+++ b/ndn-cpp/Name.cpp
@@ -19,17 +19,29 @@
 void Name::set(struct ndn_Name &nameStruct) 
 {
   clear();
-  for (int i = 0; i < nameStruct.nComponents; ++i)
+  for (unsigned int i = 0; i < nameStruct.nComponents; ++i)
     addComponent(nameStruct.components[i].value, nameStruct.components[i].valueLength);  
 }
 
+void Name::get(struct ndn_Name &nameStruct) 
+{
+  if (nameStruct.maxComponents < components_.size())
+    throw runtime_error("nameStruct.maxComponents must be >= this name getNComponents()");
+  
+  nameStruct.nComponents = components_.size();
+  for (unsigned int i = 0; i < nameStruct.nComponents; ++i) {
+    nameStruct.components[i].value = &components_[i][0];
+    nameStruct.components[i].valueLength = components_[i].size();
+  }  
+}
+
 std::string Name::to_uri()
 {
   // TODO: implement fully.
   ostringstream output;
-  for (int i = 0; i < components_.size(); ++i) {
+  for (unsigned int i = 0; i < components_.size(); ++i) {
     output << "/";
-    for (int j = 0; j < components_[i].size(); ++j)
+    for (unsigned int j = 0; j < components_[i].size(); ++j)
       output << components_[i][j];
   }
   
diff --git a/ndn-cpp/Name.hpp b/ndn-cpp/Name.hpp
index eacd420..802aaae 100644
--- a/ndn-cpp/Name.hpp
+++ b/ndn-cpp/Name.hpp
@@ -40,6 +40,13 @@
   void set(struct ndn_Name &nameStruct);
   
   /**
+   * Set the nameStruct to point to the components in this name, without copying any memory.
+   * WARNING: The resulting pointers in nameStruct are invalid after a further use of this name which could reallocate the components memory.
+   * @param nameStruct a C ndn_Name struct where the components array is already allocated.
+   */
+  void get(struct ndn_Name &nameStruct);
+  
+  /**
    * Add a new component, copying from value of length valueLength.
    */
   void addComponent(unsigned char *value, unsigned int valueLength) {
