这段三级C语言的程序里的第6排的“memset(str,0,80);”是什么意思?
发布网友
发布时间:1小时前
我来回答
共3个回答
热心网友
时间:34分钟前
memset(str,0,80)是用0来初始化以地址str开始的80个连续单元..
memset函数具体的用法是:
memset() 函数常用于内存空间初始化。如: char str[100]; memset(str,0,100); memset用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘\0’;例:char a[100];memset(a, '\0', sizeof(a)); memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),会造成b的内存地址溢出。 strcpy就只能拷贝字符串了,它遇到'\0'就结束拷贝;例:char a[100],b[50];strcpy(a,b);如用strcpy(b,a),要注意a中的字符串长度(第一个‘\0’之前)是否超过50位,如超过,则会造成b的内存地址溢出。
热心网友
时间:33分钟前
char,字符类型,是基本变量类型的一种,譬如
可以定义字符变量:
char
c;
可以定义字符数组:
char
str[100];
可以定义字符指针:
char
*cp;
等等。
str不是c语言的保留标识,只能作为变量名使用,如上面的字符数组定义。
memset是给一块内存区域的每个字节写入指定的值。譬如
memset(str,
0,
100);
就是把str指向的100字节大小的内存,所有字节都赋值为0。一般用作数组、内存buffer初始化用。
热心网友
时间:33分钟前
memset
Sets buffers to a specified character.
void *memset( void *dest, int c, size_t count );
Routine Required Header Compatibility
memset <memory.h> or <string.h> ANSI, Win 95, Win NT
For additional compatibility information, see Compatibility in the Introction.
Libraries
LIBC.LIB Single thread static library, retail version
LIBCMT.LIB Multithread static library, retail version
MSVCRT.LIB Import library for MSVCRT.DLL, retail version
Return Value
memset returns the value of dest.
Parameters
dest
Pointer to destination
c
Character to set
count
Number of characters
Remarks
The memset function sets the first count bytes of dest to the character c.
Example
/* MEMSET.C: This program uses memset to
* set the first four bytes of buffer to "*".
*/
#include <memory.h>
#include <stdio.h>
void main( void )
{
char buffer[] = "This is a test of the memset function";
printf( "Before: %s\n", buffer );
memset( buffer, '*', 4 );
printf( "After: %s\n", buffer );
}
Output
Before: This is a test of the memset function
After: **** is a test of the memset function
参考资料:MSDN