編程急轉彎

2004/11/29
how to realize a memcpy function?
My answer:
int memcpy(char* scr,char* des,int size)
{
assert(des);
assert(scr);
assert((size>0)&&(size<MAX_SIZE));
int r=0;
for(r = 0;r< size % 4;r++)
*((int*)des+r)=*((int*)scr+r);
r*=4;
for(;r<size;r++)
*(des+r)=*(scr+r);
return r;
}

Fault: the exception that abs(scr-des)<size was not cared.
Tip: when use pointer in recurrence, the overlay must be handled.

Other case:
for(int i;i<s;i++)
a[i]=a[i-1];

2005/03/29
int a[][4]={2,4,6,7,10,12,14,16,18,20,22,24};
int (*p)[4]=a;
printf("%d/n",*p(*(p+2)+1));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章