c语言中memset
时间: 2023-08-22 11:11:39 浏览: 109
在C语言中,memset函数用于将一段内存块中的每个字节的内容全部设置为指定的值。它的原型为:void *memset(void *s, int ch, size_t n)。其中,s是指向要填充的内存块的指针,ch是要设置的ASCII值,n是要填充的字节数。\[2\]
在引用\[1\]中的代码中,memset(a, 1, 20)的意思是将数组a中的前20个字节的内容都设置为1。然而,由于memset按字节赋值,而int类型占用4个字节,所以实际上每个元素只设置了一个字节,导致输出结果不符合预期。正确的写法应该是memset(a, 1, 5*sizeof(int)),这样才能将数组a中的每个元素都设置为1。\[1\]
在引用\[3\]中的代码中,memset(a, 0, sizeof(a))的意思是将结构体或数组a中的每个字节都设置为0。然而,sizeof(a)返回的是指针的大小,而不是结构体或数组的大小。正确的写法应该是memset(a, 0, sizeof(*a)),这样才能正确地清零结构体或数组。\[3\]
#### 引用[.reference_title]
- *1* *2* *3* [c语言memset详解](https://blog.csdn.net/zou_albert/article/details/123172580)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文