搜索

这段三级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

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top