How to use unsafe code with pointers in C#

2 Answers

0 votes
using System;

namespace ConsoleApplication_C_Sharp
{
    class Program
    {
        // Error CS0227  Unsafe code may only appear if compiling with /unsafe 
        /*
            Open the project Properties page
            Click the Build property page
            Select the Allow Unsafe Code check box
        */
        static unsafe void PointersTest(int *p)
        {
            *p = 300;
        }

        static void Main(string[] args)
        {
            int n = 10;

            unsafe
            {
                PointersTest(&n);
            }

            Console.WriteLine(n);
        }
    }
}


/*
run:

300

*/

 



answered Apr 28, 2017 by avibootz
0 votes
using System;

namespace ConsoleApplication_C_Sharp
{
    class Program
    {
        // Error CS0227  Unsafe code may only appear if compiling with /unsafe 
        /*
            Open the project Properties page
            Click the Build property page
            Select the Allow Unsafe Code check box
        */

        static unsafe void Main(string[] args)
        {
            int a = 13;
            int b = 120;

            Console.WriteLine("&a = {0} &b = {1}", (int)&a, (int)&b);
            Console.WriteLine("a = {0} b = {1}", a, b);

            int* p;

            p = &a;
            Console.WriteLine("p point to address = {0}", (int)p);

            *p = 300;
            Console.WriteLine("a = {0} b = {1}", a, b);

            p = &b;
            Console.WriteLine("p point to address = {0}", (int)p);

            *p = 971;
            Console.WriteLine("a = {0} b = {1}", a, b);
        }
    }
}


/*
run:

&a = 2355144 &b = 2355140
a = 13 b = 120
p point to address = 2355144
a = 300 b = 120
p point to address = 2355140
a = 300 b = 971

*/

 



answered Apr 28, 2017 by avibootz

Related questions

1 answer 160 views
2 answers 214 views
2 answers 208 views
1 answer 55 views
1 answer 53 views
1 answer 94 views
...