fork download
  1. #include <cstring>
  2. #include <cstdio>
  3. #include <memory>
  4. using namespace std;
  5.  
  6. struct some {
  7. static const size_t name_length = 64;
  8.  
  9. char name[name_length+1];
  10.  
  11. some() = default;
  12.  
  13. some(const some& s) {
  14. memcpy(name, s.name, strlen(s.name)+1);
  15. }
  16.  
  17. // other constructors...
  18.  
  19. void set_name(const char* s) {
  20. auto len = strlen(s);
  21. if (len > name_length) {
  22. len = name_length;
  23. }
  24. memcpy(name, s, len);
  25. name[len] = '\0';
  26. }
  27. };
  28.  
  29. int main() {
  30. some s1, s2;
  31. s2.set_name("hello");
  32.  
  33. s1 = s2;
  34. s1.name[0] = 'H';
  35.  
  36. puts(s1.name);
  37. puts(s2.name);
  38.  
  39. return 0;
  40. }
Success #stdin #stdout 0s 15232KB
stdin
Standard input is empty
stdout
Hello
hello