diff --git a/ndn-cpp/c/util/dynamic-uchar-array.c b/ndn-cpp/c/util/dynamic-uchar-array.c
index 208544f..d961e7f 100644
--- a/ndn-cpp/c/util/dynamic-uchar-array.c
+++ b/ndn-cpp/c/util/dynamic-uchar-array.c
@@ -16,7 +16,7 @@
     // The needed length is much greater, so use it.
     newLength = length;
     
-  unsigned char *newArray = (*self->realloc)(self->array, newLength);
+  unsigned char *newArray = (*self->realloc)(self, self->array, newLength);
   if (!newArray)
     return NDN_ERROR_DynamicUCharArray_realloc_failed;
   
diff --git a/ndn-cpp/c/util/dynamic-uchar-array.h b/ndn-cpp/c/util/dynamic-uchar-array.h
index cdcdcdd..101b5f3 100644
--- a/ndn-cpp/c/util/dynamic-uchar-array.h
+++ b/ndn-cpp/c/util/dynamic-uchar-array.h
@@ -16,10 +16,12 @@
 struct ndn_DynamicUCharArray {
   unsigned char *array; /**< the allocated array buffer */
   unsigned int length;  /**< the length of the allocated array buffer */
-  unsigned char * (*realloc)(unsigned char *array, unsigned int length); /**< a pointer to a function that reallocates array and returns a new pointer to a buffer of
-                                                                          * length bytes, or 0 for error.  On success, the contents of the old buffer are copied to the new one.
-                                                                          * On success, the original array pointer will no longer be used.
-                                                                          * This function pointer may be 0 (which causes an error if a reallocate is necessary). */
+  unsigned char * (*realloc)
+    (struct ndn_DynamicUCharArray *self, unsigned char *array, unsigned int length); /**< a pointer to a function that reallocates array and returns a new pointer to a buffer of
+                                                                                      * length bytes, or 0 for error.  On success, the contents of the old buffer are copied to the new one.
+                                                                                      * On success, the original array pointer will no longer be used.
+                                                                                      * self is a pointer to the struct ndn_DynamicUCharArray which is calling realloc.
+                                                                                      * This function pointer may be 0 (which causes an error if a reallocate is necessary). */
 };
 
 /**
@@ -30,7 +32,8 @@
  * @param reallocFunction see ndn_DynamicUCharArray_ensureLength.  This may be 0.
  */
 static inline void ndn_DynamicUCharArray_init
-  (struct ndn_DynamicUCharArray *self, unsigned char *array, unsigned int length, unsigned char * (*reallocFunction)(unsigned char *, unsigned int)) 
+  (struct ndn_DynamicUCharArray *self, unsigned char *array, unsigned int length, 
+   unsigned char * (*reallocFunction)(struct ndn_DynamicUCharArray *self, unsigned char *, unsigned int)) 
 {
   self->array = array;
   self->length = length;
diff --git a/ndn-cpp/c/util/ndn_realloc.c b/ndn-cpp/c/util/ndn_realloc.c
index 397834b..bbc5e15 100644
--- a/ndn-cpp/c/util/ndn_realloc.c
+++ b/ndn-cpp/c/util/ndn_realloc.c
@@ -6,7 +6,7 @@
 #include <stdlib.h>
 #include "ndn_realloc.h"
 
-unsigned char *ndn_realloc(unsigned char *array, unsigned int length)
+unsigned char *ndn_realloc(struct ndn_DynamicUCharArray *self, unsigned char *array, unsigned int length)
 {
   return (unsigned char *)realloc(array, length);
 }
diff --git a/ndn-cpp/c/util/ndn_realloc.h b/ndn-cpp/c/util/ndn_realloc.h
index bca997a..148fc2c 100644
--- a/ndn-cpp/c/util/ndn_realloc.h
+++ b/ndn-cpp/c/util/ndn_realloc.h
@@ -6,6 +6,8 @@
 #ifndef NDN_NDN_REALLOC_H
 #define NDN_NDN_REALLOC_H
 
+#include "dynamic-uchar-array.h"
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -13,11 +15,12 @@
 /**
  * Wrap the C stdlib realloc to convert to/from void * to unsigned char *.
  * This can be used by ndn_DynamicUCharArray_init.
- * @param array the allocated array buffer to realloc
- * @param length the length for the new array buffer
- * @return the new allocated array buffer
+ * @param self This is ignored.
+ * @param array the allocated array buffer to realloc.
+ * @param length the length for the new array buffer.
+ * @return the new allocated array buffer.
  */
-unsigned char *ndn_realloc(unsigned char *array, unsigned int length);
+unsigned char *ndn_realloc(struct ndn_DynamicUCharArray *self, unsigned char *array, unsigned int length);
 
 #ifdef __cplusplus
 }
