C#里面的指針

先貼代碼

實(shí)現(xiàn)的是一個(gè)復(fù)制的功能

using System;

namespace ConsoleApp2
{
    class Program
    {
        static unsafe void Copy(byte[] src,byte[] dst, int count)
        {
            int srcLen = src.Length;
            int dstLen = dst.Length;
            if(srcLen<count||dstLen<count)
            {
                throw new ArgumentException();
            }
            fixed (byte* pSrc=src, pDst=dst)
            {
                byte* ps = pSrc;
                byte* pd = pDst;
                for(int n=0;n<count;n++)
                {
                    *pd++ = *ps++;
                }
            }
        }
        static void Main()
        {
            byte[] a = new byte[100];
            byte[] b = new byte[100];
            for(int i=0;i<100;i++)
            {
                a[i] = (byte)i;
            }
            Copy(a, b, 100);
            Console.WriteLine("The first 10 elements are:");
            for (int i = 0; i < 10; i++)
                Console.Write(b[i] + "{0}", i < 9 ? " " : "");
            //Console.WriteLine();
        }
    }
}

注意出現(xiàn)的錯(cuò)誤警告

如果你在編譯過(guò)程中出現(xiàn)了錯(cuò)誤CS0227不安全代碼只會(huì)在使用 /unsafe 編譯的情況下出現(xiàn)這樣的問(wèn)題,那么你需要設(shè)置一下當(dāng)前項(xiàng)目的屬性:

調(diào)試->屬性

生成->勾選中箭頭的選項(xiàng)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容