經常碰到一些程式使用memset()函數,不清楚它的作用是什么,有什么好處?
如:
char log[20];
CString cResultStr;
char strdir[255];
memset(strdir,NULL,sizeof(strdir));
DWORD dwdirLen = GetCurrentDirectory(sizeof(strdir),strdir);
strcpy(&strdir[dwdirLen],"\\modemlog.txt");
wsprintf(log,"%d",2);
其實我不用memset,直接給strdir賦值為null,不也一樣嗎?

解决方案 »

  1.   

    memset直接内存块操作,速度不是你一个一个设置可以比的。
      

  2.   

    memset是用来将一个内存块设定预定的内容的如果:
    char buf[10];
    memset(buf, 'a', 10);这时buf[0] = buf[1] = ... = buf[9] = 'a';一般我们都用
    memset(buf, 0, 10);
    这样,buf的每一个字节都是0,有时我们用memset来设定默认内容,如设定默认值为x
    memset(buf, x, 10);
    buf[5] = 'a';那么,buf除了第6个是a外,其他地都是x。
      

  3.   

    非常感謝!
    給分了!
    csdn真好,有問題可以馬上得到解答!