C语言 将char指针指向的数据归零



我正在尝试将char指针指向的数据归零,如:

int my_function(char *data) {
// something here...
memset(data, 0, sizeof(data));
//...
}

它不工作,因为memset函数应用于指针而不是数据本身。

如何在数据本身上调用memset函数进入内存?

sizeof(data)返回对象data类型的字节大小,在本例中为char*,即它返回存储字符指针所需的字节数但不是实际的字符数组。char*类型不存储它所指向的字符数组的大小,您必须在size_t中单独存储该大小(见1)。

void* memset( void* str, int ch, size_t n);

n是从位置str开始的字节数,将全部设置为值ch。包含n个元素的类型为T的数组的字节大小由sizeof(T[n])返回(在size_t中)。

1:size_t的行为与unsigned int完全相同,但可能具有不同的数字容量,它的最大值是您可以分配给数组的最大字节数。

相关内容

  • 没有找到相关文章

最新更新