L.elem=(char *)malloc(50*sizeof(char)); 这条语句是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/09/24 15:22:18
elem是类L中的一个成员变量

elem是类L中的一个成员变量:
char *elem;

L.elem=(char *)malloc(50*sizeof(char));
给 elem 动态分配50个字符单元,返回char型指针,指向字符单元的首地址。

如果动态分配成功,接着你可以把
char *elem;
看成 char elem[50];
在程序中使用。

动态分配成功或失败测试法:
if ( ! L.elem){ 动态分配失败} else {动态分配成功};

开50个char长度的内存,该指针指向char类型

malloc关键字是包含在string.h中的用来申请内存空间的。
elem应该是个指针,申请了50个长度为char的空间的内存。

sizeof(char)表示一个字符的长度,即一个字节,malloc开辟一连续内存空间并返回空间首地址,可以判断elem是一字符型指针,故需用(char*)将malloc返回值强制为字符型指针类型