 
 __global__ 
 void Kernel_by_ref(DataElement &elem) {
-  printf("On device:                  name=%s, value=%d\n", elem.name.c_str(), elem.value);
+  printf("On device by ref:           name=%s, value=%d\n", elem.name.c_str(), elem.value);
 
   elem.name[0] = 'r';
   elem.value++;

  // Assignment operator
  String& operator=(const char* s) {
    _realloc(strlen(s));
    memcpy(data, s, length);
    return *this;
  }


  String() : length(0), data(0) {}
  
  // Constructor for C-string initializer
  String(const char *s) : length(0), data(0) { 
    _realloc(strlen(s));
    strcpy(data, s);
  }

  // Copy constructor
  String(const String& s) : length(0), data(0) {
    _realloc(s.length);
    strcpy(data, s.data);
  }
  
  ~String() { cudaFree(data); }
