according to the theory after manupaliting string using String Builder keyword both memory address must be same, but i get wrong answer. could anyone please explain this.
class Program
    {             
        static void Main(string[] args)
        {
            Console.WriteLine("using string keyword (immutable)");
            string str1 = "Interview";
            Console.WriteLine("str1 text is: "+ str1);
            unsafe
            {
                fixed (char* pointer = str1)
                {
                    Console.WriteLine("Memory address of str1 is: "+(int)pointer);
                }
                
            }
            str1 += "Happy";
            Console.WriteLine("str1 modified text is: "+str1);
            unsafe
            {
                fixed (char* pointer = str1)
                {
                    Console.WriteLine("str1 memeory address is: "+(int)pointer);
                }
            }
            Console.WriteLine("\n");
            Console.WriteLine("Using String Builder to (mutable string)");
            StringBuilder str2 = new StringBuilder();
            str2.Append ("Interview");
            Console.WriteLine("str2 text is:" + str2);
            unsafe
            {
                fixed (char* pointer = str2.ToString())
                {
                    Console.WriteLine("str2 memory address is: "+(int)pointer);
                }
            }
           
            str2.Append("Selection Process");
            Console.WriteLine("str2 modified text is: "+str2);
            unsafe
            {
                fixed (char* pointer = str2.ToString())
                {
                    Console.WriteLine("str2 aftermodified memory address is:"+(int)pointer);
                }
            }
            Console.ReadKey();
        }
    }
// result
using string keyword (immutable)
str1 text is: Interview
Memory address of str1 is: 52066096
str1 modified text is: InterviewHappy
str1 memeory address is: 52069440
Using String Builder to (mutable string)
str2 text is:Interview
str2 memory address is: 52070212
str2 modified text is: InterviewSelection Process
str2 aftermodified memory address is:52070828
i thought result was same on both sceniros by using string Builder key wor but result is different from expected.
result is
using string keyword (immutable) str1 text is: Interview Memory address of str1 is: 52066096 str1 modified text is: InterviewHappy str1 memeory address is: 52069440
Using String Builder to (mutable string) str2 text is:Interview str2 memory address is: 52070212 str2 modified text is: InterviewSelection Process str2 aftermodified memory address is:52070828
 
    