memset的问题
lswx 2005-03-17 10:34:43 memset(a, 0, sizeof(a));
和
memset(a, 0x00, sizeof(a));
有什么区别?
对于一个字符串a,memset(a, 0, sizeof(a));字符串里面的东西被清空了没有?
我做了很错次实验是在发现不了有什么不同?
但是我的一个程序出了问题:
问题如下:
char a[60]= "chinacsdnchinacsdnchinacsdn";
char b[30];
//我要做的就是删除a的前9位,把剩余的部分提前到数组初始位置
从a的第10位开始复制
strncpy(b, &a[9], strlen(&a[9]));
memset(a, 0, sizeof(a));
strncpy(a, b,strlen9(b));
打印a,b中的内容,b正常,但是a末尾出现了很多字符,如果是乱码什么的都可以接受,但是出现的字符就是a中的一段字符。
请问各位高手告诉我为什么?
还有结构体可以用memset这样初始吗?