När du sätter egenskapen name, gör inte så som du gjort. Använd strcpy() istället.
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">strcpy(name, newname);
Ett problem med ditt sätt att tilldela name är att name blir satt att peka på precis samma minnesblock som newname. Det är förstås ett stort problem om du sedan gör något med newname på ett annat ställe i klassen. Då ändras också name hur privat den variabeln än är. Det är inte snyggt ur någon OO-synpunkt. Med strcpy() kommer name att fortsätta peka på samma ställe som tidigare. Den funktionen går till minnesblocket som newname pekar på, och kopierar innehållet i det blocket till det block som name pekar på.
Vill du göra det ännu säkrare använder du strncpy.
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">strncpy(name, newname, 25);
Skillnaden är att strcpy kopierar ända tills ett NULL-tecken träffas på, och det är ju inte 100% garanti för att det gör det. strncpy stannar efter n st tecken, i mitt exempel 25 tecken. Observera att NULL-tecken kommer INTE av automatik fästas vid strängslutet. Finns det med i källsträngen kommer det naturligtvis med i målsträngen förutsatt att det är inom n tecken.
