 
   printf("On host (after by-value):   name=%s, value=%d\n", e->name.c_str(), e->value);
 
-  delete e;
+  //delete e;
 
   cudaDeviceReset();
 }

  // 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); }
