Jon Burgess on Sunday 20 November 2005 18:17: > Doesn't this cause a memory leak? It'll strdup() the old string and then > lose the old pointer to it. Hello, as far as I can see, there wouldn't be a mem leak - as both cStrings point to the same buffer, you only loose one of them. The one that was assigned from still has a pointer to the original buffer (and its destructor will free it). > > if(s!=String.s) { > free(s); > s = String.s ? strdup(String.s) : NULL; > } > > or maybe something like: > if (&String == this) return *this; > This is possibility 1) from my original posting I asked for arguments for. As stated there, I'd prefer making a new copy as I expect operator= to do so in every case. Greetings Holger