用memset如何对一个二维数组的某一行清空???

时间:2022-09-01 18:50:51
char  array[9][90];
memset(array+2,'\0',90);
可以这样来清空数组的第三行么

7 个解决方案

#1


可以,但是最好写成这样
memset(array+2,'\0', sizeof(char)*90 );

#2


可以·
对于char来说那样就可以了

#3


可以实现
但memset(array+2,0,90);应该也可以吧。

#4


我觉得标准的应该是:

*(array+2)或者array[2]

array+2只能用在静态分配吧,估计和内存分配方式有关(一个9*90的一维空间)

#5


都说完了。。。
memset(array+2,'\0', sizeof(char)*90 );

memset(array+2,0, sizeof(char)*90 );
是一样的。

#6


sizeof(char)==1;
所以:
memset(array+2,0, 90);是可以的

#7


当然可以,

memset 处理连续的空间,
所以, 只要你的清除空间是连续的,
那么都是可以使用这个 memset的,
问题是这个 长度 nlen 参数千万别搞错鸟 ...

#1


可以,但是最好写成这样
memset(array+2,'\0', sizeof(char)*90 );

#2


可以·
对于char来说那样就可以了

#3


可以实现
但memset(array+2,0,90);应该也可以吧。

#4


我觉得标准的应该是:

*(array+2)或者array[2]

array+2只能用在静态分配吧,估计和内存分配方式有关(一个9*90的一维空间)

#5


都说完了。。。
memset(array+2,'\0', sizeof(char)*90 );

memset(array+2,0, sizeof(char)*90 );
是一样的。

#6


sizeof(char)==1;
所以:
memset(array+2,0, 90);是可以的

#7


当然可以,

memset 处理连续的空间,
所以, 只要你的清除空间是连续的,
那么都是可以使用这个 memset的,
问题是这个 长度 nlen 参数千万别搞错鸟 ...