C言語memsetとbzeroの実現方法

6239 ワード

次の警告テストでは、C言語memsetとbzeroの実装方法は似ていると思います.
#include 

typedef struct A{
     
	char ch[9];
	int cc[2];
}a;

int main(int argc, const char *argv[])
{
     
	a x;
	int n,t;
	n = sizeof(a);
	char *p = (char *) &x;
	printf("%d
"
,n); printf("%p
"
,&x); printf("%p
"
,&x+1); for(t=0;t<n;t++){ printf("%p
"
,p+t); *(p+t) = 'A'; } printf("%d
"
,t-1); printf("%s
"
,x.ch); printf("%d
"
,x.cc[0]); printf("%d
"
,x.cc[1]); return 0; }

出力結果:linux@ubuntu:~/E$ ./a.out 20 0 xbf 880688 0 xbf 88069 c 0 xbf 88069 c 0 xbf 880688 0 xbf 880689 0 xbf 88068 a 0 xbf 88068 a 0 xbf 88068 b 0 xbf 88068 c 0 xbf 88068 d 0 xbf 88068 e 0 xbf 88068 f 0 0 xbf 88068 f 0 0 0 xbf 880690 0 xbf 880691 0 xbf 880692 0 xbf 880693 0 xbf 880693 0 xbf 880694 0 xbf 880694 0 xbbf 880695 0 xbf 880696 0 xbf 880696 0 0 xbf 880697 0 xbf 880680 0 0 xbf 8806xbf 88069 a 0 xbf 88069 b 19 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlinux@ubuntu:~/E3$