所以使用memset函数对char类型数组进行赋值(0值或者非0值)都正确,因为char类型数组的元素大小都是1个字节,刚好与memset函数以字节为单位进行赋值一致。而int类型数组,我们示例代码int类型大小是4个字节,即int类型数组每个元素都是以4个字节为一个单位,“对int类型数组赋0值正确”,这个很好理解,因为将整个内存的每个字...
所以它可能不会写入整个数组。第二种方法使用sizeof(char*)而不是sizeof(char),因此它将写入数组的...
intlen=strlen(str); fout.write((char*)&len,sizeof(int)); fout.write(str,len);//'\0'不写入文件中 fout.close(); ifstreamfin("a.dat",ios::binary); intlen2; fin.read((char*)&len2,sizeof(int)); char*dest=newchar[len2+1]; memset(dest,0,len2+1);//初始化动态字符数组为空...
但如果char数组的内存没有初始化,会出错。 因为数组里边可没有初始化,打印出来的是乱码。 也就是说如果例子中空(没有字符)太多的话,就会表现出来乱码,导致错误。 memset的机制是使用,你给定的一个字节去刷新整个内存,字符也正好是一个字节,所以适用。 可以memset(c,’ ',sizeof©); 这样把整个c字符数组全部...