malloc(malloc()和calloc()有啥区别)

2024-09-13 18:20:27 :12

malloc(malloc()和calloc()有啥区别)

本文目录

malloc()和calloc()有啥区别

malloc()和calloc()的区别:

malloc()和calloc()的功能都是在内存的动态存储区中分配n个长度为size的连续空间,函数返回一个指向分配起始地址的指针。

而他们之间的区别就是calloc在动态分配完内存数禅后,自动初薯好始化该内存空间为零,而malloc不初始化,里边数据是随机的垃圾数据。比如说在内存中分配长度为10的int类型的数组,若使薯手尘用的是函数calloc(),则数组被初始化为10个0,若是使用malloc()函数,则数组里面存的是垃圾数据。

扩展资料:

    malloc()在内存中分配内存的工作机制:

malloc函数的实质体现在,它有一个将可用的内存块连接为一个长长的列表的所谓空闲链表。

调用malloc函数时,它沿连接表寻找一个大到足以满足用户请求所需要的内存块。

然后,将该内存块一分为二(一块的大小与用户请求的大小相等,另一块的大小就是剩下的字节)。

接下来,将分配给用户的那块内存传给用户,并将剩下的那块(如果有的话)返回到连接表上。调用free函数时,它将用户释放的内存块连接到空闲链上。

到最后,空闲链会被切成很多的小内存片段,如果这时用户申请一个大的内存片段,那么空闲链上可能没有可以满足用户要求的片段了。

于是,malloc函数请求延时,并开始在空闲链上翻箱倒柜地检查各内存片段,对它们进行整理,将相邻的小空闲块合并成较大的内存块。

如果无法获得符合要求的内存块,malloc函数会返回NULL指针,因此在调用malloc动态申请内存块时,一定要进行返回值的判断。 

参考资料:

百度百科-malloc()

百度百科-calloc()

c语言中malloc是什么怎么用

malloc() 函数用来动态地分配内存空间,其原型为:void* malloc (size_t size);

说明:

【参数说明】

size 为需要分配的内存空间的大小,以字节(Byte)计。

【函数说明】

malloc() 在堆区分配一块指定大小的内存空间,用来存放数据。这块内存空间在函数执行完成后不会被初始化,它们的值是未知的。如果希望在分配内存的同时进行初始化,请使用 calloc()() 函数。

【返回值】

分配成功返回指向该内存的地址,失败则返回 NULL。

操作:

由于申请内存空间时可能有也可能没有,所以需要自行判断是否申请成功,再进行后续操作。

如果 size 的值为 0,那么返回值会因标准库实现的不同而不同,可能是 NULL,也可能不是,但返回的指针不应该再次被引用。

注意:函数的返回值类型是 void *,void 并不是说没有返回值或者返回空指针,而是返回的指针类型未知。所以在使用 malloc() 时通常需要进行强制类型转换,将 void 指针转换成我们希望的类型,例如:

#include《stdlib.h》

typedef int ListData;

ListData *data;  //存储空间基址

data = ( ListData * ) malloc( 100 * sizeof ( ListData ) );

扩展资料

实现malloc的方法:

(1)数据结构 

首先我们要确定所采用的数据结构。一个简单可行方案是将堆内存空间以块的形式组织起来,每个块由meta区和数据区组成,meta区记录数据块的元信息(数据区大小、空闲标志位、指针等等)。

数据区是真实分配的内存区域,并且数据区的第一个字节地址即为malloc返回的地址 。

(2)寻找合适的block 

现在考虑如何在block链中查找合适的block。一般来说有两种查找算法: 

First fit:从头开始,使用第一个数据区大小大于要求size的块所谓此次分配的块 

Best fit:从头开始,遍历所有块,使用数据区大小大于size且差值最小的块作为此次分配的块 

两种方式各有千秋,best fit有较高的内存使用率(payload较高),而first fit具有较高的运行效率。这里我们采用first fit算法。

(3)开辟新的block 如果现有block都不能满足size的要求,则需要在链表最后开辟一个新的block。

(4)分裂block First fit有一个比较致命的缺点,就是可能会让更小的size占据很大的一块block,此时,为了提高payload,应该在剩余数据区足够大的情况下,将其分裂为一个新的block。

(5)malloc的实现 

有了上面的代码,我们就可以实现一个简单的malloc.注意首先我们要定义个block链表的头first_block,初始化为NULL;另外,我们需要剩余空间至少有BLOCK_SIZE+8才执行分裂操作 

由于我们需要malloc分配的数据区是按8字节对齐,所以size不为8的倍数时,我们需要将size调整为大于size的最小的8的倍数。

malloc怎么使用,请举例说明,谢谢!

malloc使用须要包括头文件:

#include ’stdlib.h’

例如:

int *p;

p = new int;  /返回类型为int* 类型(整数型指针)。分配大小为 sizeof(int);

或:

int* parr;

parr = new int ;   //返回类型为 int* 类型(整数型指针)。分配大小为 sizeof(int) * 100;

而 malloc 则必猜察须由我们计算要字节数,而且在返回后强行转换为实际类型的枣高指针。

int* p;

p = (int *) malloc (sizeof(int));

扩展资料:

malloc 函数返回的是 void * 类型。

对于C++,如果你写成:p = malloc (sizeof(int)); 则程序无法通过编译,报错:“不能将 void* 赋值给 int * 类型变量”。

所以必须通过 (int *) 来将强制转换。而对于C,没有这个要求,但为了使C程序更方便的移植到C++中来,养成强制转换的习惯。

在Linux中可以有这样:malloc(0),这是因为Linux中malloc有一个下限值16Bytes,注意malloc(-1)是禁止的;但是在某些系统中是不允许malloc(0)的。

在规范的程序中我们有必要按照这样的格穗岩茄式去使用malloc及free:

type *p;

if(NULL == (p = (type*)malloc(sizeof(type))))

/*请使用if来判断,这是有必要的*/

{

perror("error...");

exit(1);

}

.../*其它代码*/

free(p);

p = NULL;/*请加上这句*/

malloc函数实现的功能是什么

malloc 原型:extern void *malloc(unsigned int num_bytes); 用法:#include 《malloc.h》 或#include《stdlib.h》 功能:分配长度为num_bytes字节的内存块 说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。 当内存不再使用时,应使用free()函数将内存块释放。 malloc的语法是:指针名=(数据类型*)malloc(长度),(数据类型*)表示指针.malloc()是C语言中动态存储管理的一组标准库函数之一。其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整凯茄形数,返回值是一个指向所分配的连续存储域的起始地址的指针。 动态内存分配就是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不像数组等静态内段租存分配方法那样需要预先分配存储空间,而是由系统根据程序的需要即时分配,且分配的大小就是程序要求的大小。本文简单介绍动态内存分配函数malloc()及几种实现方法。 1. 简介 malloc()是C语言中动态存储管理的一组标准库函数之一。其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值是一个指向所分配的连续存储域的起始地址的指针。还有一点必须注意的是,当函数未能成功分配存储空间(如内存不足)就会返回一个NULL指针。所以在调用该函数时应该检测返回值是否为NULL并执行相应的操作。 2. 函数说明 C语言的动态存储管理由一组标准库函数实现,其原型在标准文件《stdlib.h》里描述,需要用这些功能时应包含这个文件。与动态存储分配有关的函数共有四个,其中就包括存储分配函数malloc()。函数原型是:void *malloc (size_t n);这里的size_t是标准库里定义的一个类型,它是一个无符号整型。这个整型能够满足所有对存储块大小描述的需要,具体相当于哪个整型由具体的C系统确定。malloc的返回值为(void *)类型(这是通用指针的一个重要用途),它分配一片能存放大小为n的数据的存储块,返回对应的指针值;如果不能满足申请(找不到能满足要求的存储块)就返回握孙兆NULL。在使用时,应该把malloc的返回值转换到特定指针类型,赋给一个指针。 注意,虽然这里的存储块是通过动态分配得到的,但是它的大小也是确定的,同样不允许越界使用。例如上面程序段分配的块里能存n个双精度数据,随后的使用就必须在这个范围内进行。越界使用动态分配的存储块,尤其是越界赋值,可能引起非常严重的后果,通常会破坏程序的运行系统,可能造成本程序或者整个计算机系统垮台。 下例是一个动态分配的例子: #include 《stdio.h》 #include《stdlib.h》 main() { int count,*array; /*count是一个计数器,array是一个整型指针,也可以理解为指向一个整型数组的首地址*/ count=100; if((array=(int *)malloc(10*sizeof(int))) == NULL) { printf("不能成功分配存储空间。"); exit(1); } for(count=0;count《10;count++) /*给数组赋值*/ array); } 上例中动态分配了10个整型存储区域,然后进行赋值并打印。例中if((array=(int *) malloc (10*sizeof(int)))==NULL)语句可以分为以下几步: 1)分配10个整型的连续存储空间,并返回一个指向其起始地址的整型指针 2)把此整型指针地址赋给array 3)检测返回值是否为NULL

C语言的malloc函数有什么用

1、这个涉及两个存储区域,堆和栈,用malloc申请的空间在堆上,chara这个是在栈上。堆和栈最重要一个区别是,栈是系统管理的的,他负责回收和释放,所以有个概念叫作用域,变量的作用域一结束,栈就回收变量的资源。但是堆是程序员管理的,程序员不释放,除非进程结束,这个空间就一直在那,就有了一定灵活性。2、当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存,即malloc函数。malloc函数原型:externvoid*malloc(unsignedintnum_bytes);头文件:#include功能:分配长度为num_bytes字节的内存块返回值:如果分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针null。当内存不再使用时,应使用free()函数将内存块释放。函数返回的指针一定要适当对齐,使其可以用于任何数据对象。说明:关于该函数的原型,在以前malloc返回的是char型指针,新的ansic标准规定,该函数返回为void型指针,因此必要时要进行类型转换。

C语言 关于malloc的用法

malloc是分配动态数组存储空间的函数,引用它必需包含头文件"malloc.h"或"stdlib.h",malloc的作用是分配指定字节个内存空间,并返回该内存空间的首地址,但在赋值前必需进行强制类型转换。至于之后p其实就可以作为普通数组进行使用了,你的程序中少了free(p);,要将malloc的空间进行释放。

malloc函数怎么使用

size仅仅为申请内存字节大小,与申请内存块中存储的数据类型无关,故编程时需要通过以下方式给出:"长度 * sizeof(数据类型)"。

具体使用及编写方式如下图:

//动态分配内存,输入5个数据,并把低于60的值打印出来:

扩展资料:

关腔高于函数使用需要注意的一些地方:

1、申请了内存空颤春间后,必须检查是否分配成功。

2、当不需要再使用申请的内存时,记得释放;释放后应该把指向这块内存的指针指向NULL,防止程序后面不小心使用了它。

3、这两个函数应该是配对。如果申请后不释放就是内存泄露;如果无故释放那就是什么也没有做伍洞尺。释放只能一次,如果释放两次及两次以上会出现错误(释放空指针例外,释放空指针其实也等于啥也没做,所以释放空指针释放多少次都没有问题)。

4、虽然malloc()函数的类型是(void *),任何类型的指针都可以转换成(void *),但是最好还是在前面进行强制类型转换,因为这样可以躲过一。

百度百科-malloc函数

如何实现一个malloc

实现一个malloc:在实现malloc之前,先要相对正式地对malloc做一个定义。根据标准C库函数的定义,malloc具有如下原型:void* malloc(size_t size);这个函数要实现的功能是在系统中分配一段连续的可用的内存,具体有如下要求:malloc分配的内存大小至少为size参数所指定的字节数malloc的返回值是一个指针,指向一段可用内存的起始地址多次调用malloc所分配的地址不能有重叠部分,除非某次malloc所分配的地址被释放掉malloc应该尽快完成内存分配并返回(不能使用NP-hard的内存分配算法)实现malloc时应同时实现内存大小调整和内存释放函数(即realloc和free)对于malloc更多的说明可以在命令行中键入以下命令查看:1.man malloc2 .预备知识在实现malloc之前,需要先解释一些Linux系统内存相关的知识。2.1 Linux内存管理2.1.1 虚拟内存地址与物理内存地址为了简单,现代操作系统在处理内存地址时,普遍采用虚拟内存地址技术。即在汇编程序(或机器语言)层面,当涉及内存地址时,都是使用虚拟内存地址。采用这种技术时,每个进程仿佛自己独享一片2N字节的内存,其中N是机器位数。例如在64位CPU和64位操作系统下,每个进程的虚拟地址空间为264Byte。这种虚拟地址空间的作用主要是简化程序的编写及方便操作系统对进程间内存的隔离管理,真实中的进程不太可能(也用不到)如此大的内存空间,实际能用到的内存取决于物理内存大小。由于在机器语言层面都是采用虚拟地址,当实际的机器码程序涉及到内存操作时,需要根据当前进程运行的实际上下文将虚拟地址转换为物理内存地址,才能实现对真实内存数据的操作。这个转换一般由一个叫MMU(Memory Management Unit)的硬件完成。

实用数据结构malloc(m)含义

在C语言中,malloc(m)用于动态分配内存空间,其中m表示需要分配的字节数。它会在内存的堆区中分配一块大小为m字节的连续空间,并返回该空间的首地址。如果分配成功,返回的地址可以用指针变量来接收并使用。例如,若想分配4个int类型的空间,则可以使用int *p = (int*)malloc(4*sizeof(int))。这里4*sizeof(int)表示需要分配4个int类型所占用的字节数。如果分配成功,p将指向分配的内存空间的首地址,即第一个int类型的位置。可以通过指针来访问和修改这个内存空间中的值。使用完malloc分配的内存空间后,需要使用free()函数将其释放,以便其他程序可以使用这个内存空间。否则会造成内存泄漏问题。例如,可以使用free(p)来释放刚刚分配的内存空间。

malloc是什么意思呢怎么用

  1. malloc函数向系统申请分配指定size个字节的内存空间。返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以强制转换为任何其它类型的指针。

  2. 函数声明:void *malloc(size_t size),void* 表示未确定类型的指针,void *可以指向任何类型的数据,更明确的说是指申请内存空间时还不知道用户是用这段空间来存储什么类型的数据。

  3. malloc函数的实质体现在,它有一个将可用的内存块连接为一个长长的列表的所谓空闲链表。调用malloc函数时,它沿连接表寻找一个大到足以满足用户请求所需要的内存块。然后,将该内存块一分为二(一块的大小与用户请求的大小相等,另一块的大小就是剩下的字节)。接下来,将分配给用户的那块内存传给用户,并将剩下的那块(如果有的话)返回到连接表上。

malloc(malloc()和calloc()有啥区别)

本文编辑:admin
: malloc,

更多文章:


苹果x和xr那个好用(直播苹果x和xr哪个好)

苹果x和xr那个好用(直播苹果x和xr哪个好)

本文目录直播苹果x和xr哪个好苹果x跟xr哪个好苹果x和苹果xr哪个好 苹果x与苹果xr哪个拍照好x和xr哪款好直播苹果x和xr哪个好各有各的好。苹果XR配备了单颗1200万像素,光圈f/1.8的摄像头,在视频拍摄和直播时具备高达30fps

2024年11月15日 21:20

lg序列号查询官网(高分求助!如何查询LG手机的型号、生产日期、版本、销售地等信息 请直接告诉我方法)

lg序列号查询官网(高分求助!如何查询LG手机的型号、生产日期、版本、销售地等信息 请直接告诉我方法)

lg耳机的防伪在那里可以查呢LG手机序列号在什么网站查询LG手机序列号在chaLG网站查询希望我的回答对你有帮助 望采纳为满意答案你要查询真伪吗,如何查询LG手机的型号、生产日期、版本、销售地等信息 请直接告诉我方法可以直接到查询网站查询,

2024年3月24日 16:00

小白测评手机续航(续航能力强的手机排行榜)

小白测评手机续航(续航能力强的手机排行榜)

本文目录续航能力强的手机排行榜OPPO Reno4系列真的能充电5分钟,看剧4小时吗iPhone12续航和信号实测,远超预计,果粉的心总算落下苹果13全系续航测试提升强劲niceiqoo10和红米k50pro续航目前最牛骁龙888机型rea

2024年8月28日 04:20

惠普bios启动项设置(惠普服务器bios启动项设置)

惠普bios启动项设置(惠普服务器bios启动项设置)

本文目录惠普服务器bios启动项设置惠普笔记本电脑进入bios后怎样设置硬盘为第一启动项惠普进入bios设置u盘启动项 惠普进入bios设置u盘启动项的方法HP520笔记本怎么进入BIOS怎么设置U盘为第一启动项惠普bios设置u盘启动的方

2024年6月9日 23:40

pcie接口速度(PCI-E3.0,SATA3.0,USB3.0哪个快,速度各为多少)

pcie接口速度(PCI-E3.0,SATA3.0,USB3.0哪个快,速度各为多少)

本文目录PCI-E3.0,SATA3.0,USB3.0哪个快,速度各为多少pcie3.0速度PCIe3.0速度多少pcie40x4速度pcie32g的速度是多少PCI X1的速度与主板自带的M.2的速度哪个快PCI-E3.0,SATA3.0

2024年11月2日 02:20

产品经理简历(产品经理求职简历)

产品经理简历(产品经理求职简历)

本文目录产品经理求职简历应届毕业生应聘产品经理,需要具备哪些能力应聘互联网产品经理职位,简历上该注意些什么产品经理如何撰写简历互联网产品经理个人简历模板产品经理简历中自我评价范文附作品集-产品经理简历结构图-纯小白方向应聘产品经理该如何写简

2024年10月14日 07:10

漫步者官网客服(我在天猫买了一条漫步者耳机,可以上漫步者的售后点换新的吗)

漫步者官网客服(我在天猫买了一条漫步者耳机,可以上漫步者的售后点换新的吗)

本文目录我在天猫买了一条漫步者耳机,可以上漫步者的售后点换新的吗怎么查询漫步者耳机h310p真伪网购了一个漫步者耳机,现在坏了,能保修吗去哪里(保)修漫步者耳机保修吗在网上购买的漫步者耳机如何辨别真伪我在天猫买了一条漫步者耳机,可以上漫步者

2024年7月2日 07:00

实用手机app(有什么实用的App推荐吗)

实用手机app(有什么实用的App推荐吗)

本文目录有什么实用的App推荐吗5款高质量手机APP分享,无广告良心推,好用到飞起6款相见恨晚的手机APP分享,用过就舍不得卸载,强烈推荐给你们有创意又实用的app:10款超好用的APP推荐手机上都装了哪些好用的APP个个都喜欢有什么生活中

2024年5月20日 21:10

1000到2000性价比高的手机排行榜(1000-2000性价比高的手机)

1000到2000性价比高的手机排行榜(1000-2000性价比高的手机)

本文目录1000-2000性价比高的手机1000~2000性价比高的手机手机1000到2000排行榜求问一下,1000到2000手机什么品牌的性价比高1000-2000性价比高的手机推荐荣耀20青春版全网通6GB+128GB,华为商城在售价

2024年10月20日 01:50

尼康d60值得入手吗(想买一个尼康的单反,主要拍风景,D60可以么)

尼康d60值得入手吗(想买一个尼康的单反,主要拍风景,D60可以么)

本文目录想买一个尼康的单反,主要拍风景,D60可以么尼康D60怎么样入门机尼康D60是不是是个不错的选择尼康D60套机是不是值得购买啊想买入门级单反相机,价格在五千以内尼康D60怎么样有什么推荐尼康D60套机对于新手来说值不值具体价位多少尼

2024年10月6日 16:20

鼠标键盘自动点击器(键盘连点器如何下载)

鼠标键盘自动点击器(键盘连点器如何下载)

本文目录键盘连点器如何下载按键精灵怎么设定自动按键电脑鼠标连点器怎么用电脑使用鼠标连点器的方法鼠标连点器怎么用自动点击器怎么设置一秒20下电脑鼠标定时自动点击怎么设置如何使用自动点击器有什么鼠标连点器吗按键精灵自动连续点击脚本如何设置按键精

2024年10月1日 00:00

三星n8010刷机教程(刚买的三星N8010平板电脑,回来root后系统无法自动升级,想刷回国行,求各位大侠指点,怎么才能刷回国行)

三星n8010刷机教程(刚买的三星N8010平板电脑,回来root后系统无法自动升级,想刷回国行,求各位大侠指点,怎么才能刷回国行)

本文目录刚买的三星N8010平板电脑,回来root后系统无法自动升级,想刷回国行,求各位大侠指点,怎么才能刷回国行三星平板电脑N8010怎么破解ROOT三星GT-N8010开机就显示三星标志就是进不了 就一直反复的开机三星n8010平板电脑

2024年5月7日 20:20

s450奔驰价格2022款报价(2020奔驰s450报价多少钱)

s450奔驰价格2022款报价(2020奔驰s450报价多少钱)

本文目录2020奔驰s450报价多少钱奔驰s400和450性价比哪个好奔驰s450平行进口报价及图片奔驰s450和迈巴赫s450落地价大约相差多少哪个更适合自己开哪个更值得2022款奔驰s450四驱还会降价吗奔驰s450迈巴赫报价多少钱奔驰

2024年11月2日 14:20

装wifi一定要光猫吗(路由器必须接光猫么,把光纤那根线直接连无线路由器上不行么)

装wifi一定要光猫吗(路由器必须接光猫么,把光纤那根线直接连无线路由器上不行么)

本文目录路由器必须接光猫么,把光纤那根线直接连无线路由器上不行么没有光猫,只有路由器可以用wifi吗安装无线网用光纤还得用猫吗装宽带需要猫吗装了路由器还要光猫吗装宽带必须用猫吗光纤安装路由器还需要安装光猫吗宽带装无线路由器一定要用猫吗在家手

2024年7月1日 06:50

iphone13官方(iphone13官方标配有什么东西)

iphone13官方(iphone13官方标配有什么东西)

本文目录iphone13官方标配有什么东西13现在官网多少钱iphone13官方承认信号差苹果13官方在卖吗iphone13官方标配有什么东西苹果13配件标配有装有ios15的iPhone 13手机、USB-C转闪电连接线和资料,需另外配耳

2024年5月12日 01:50

读书郎官网下载游戏(读书郎学生平板电脑怎么下载东西)

读书郎官网下载游戏(读书郎学生平板电脑怎么下载东西)

本文目录读书郎学生平板电脑怎么下载东西读书郎官网怎样下载加查俱乐部读书郎怎么下载迷你世界国际服怎样在读书郎平板电脑上下载游戏读书郎怎么下载光遇读书郎知道密码怎么下游如何在读书郎学习机上了一下游戏读书郎c25怎么下载游戏读书郎学生平板电脑怎么

2024年11月3日 03:30

华为p20pro换内屏多少钱(我想问一下 就现在的话华为 p20pro换屏多少钱 内外屏一起)

华为p20pro换内屏多少钱(我想问一下 就现在的话华为 p20pro换屏多少钱 内外屏一起)

2、在手机服务APP中点击“备件价格”可以查询到备件价格,同时您也可以通过如下方式查询备件价格:1、在华为商城页面最底下的“维修与技术支持”里点击“备件价格查询”,点击“维修备件价格”进行查询,在“自助服务”点击“备件价格查询”进行备件查询

2024年3月22日 08:40

nova6的屏幕真垃圾啊(华为手机nova6手机屏幕显示惨白)

nova6的屏幕真垃圾啊(华为手机nova6手机屏幕显示惨白)

本文目录华为手机nova6手机屏幕显示惨白nova6最严重的缺点是什么华为nova6质量怎么样 屏幕不容易坏吧 不会稍微用力点 就会损伤手机吧为什么不建议买nova6华为note6屏幕好差华为手机nova6手机屏幕显示惨白屏幕苍白的话,可能

2024年4月29日 22:30

order是什么意思(order是什么意思 order的中文意思)

order是什么意思(order是什么意思 order的中文意思)

本文目录order是什么意思 order的中文意思order是什么意思order是什么意思 order的中文意思英音  ;,名词 1.为了做某事 2.顺序,次序 3.(某一时期政治、社会或经济的)模式,制度 可数名词: 1.订货

2024年6月4日 11:30

联想t470上市时间(t470有背光键盘吗)

联想t470上市时间(t470有背光键盘吗)

新一代T470系列笔记本产品2017年3月上市,联想笔记本t470机身识别号在哪里笔记本背面,联想笔记本t470机身识别号在笔记本的背面,联想笔记本t470是联想公司旗下一款笔记本电脑,显示器有背光基本参数上市时间2017年04月产品类型商

2024年3月3日 16:20