在C中这行name[i]=(char*)malloc(4*sizeof(char));是什么意思???麻烦解答一下
一般来说name是个指针数组或者二级指针
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char *name[2]; //声明一个指针数组,数组的每个元素都是一个指针
name[0] = (char *)malloc(4*sizeof(char));//为name的第一个元素(即一个char *指针)分配4字节空间
strcpy(name[0], "asd");
name[1] = (char *)malloc(4*sizeof(char));//为name的第二个元素(即一个char *指针)分配4字节空间
strcpy(name[1], "ddd");
printf("%s\n%s\n", name[0], name[1]);
}
name是一个长度为四的char数组
开辟新的地址空间,使用malloc 函数,强制类型转换为char 类型
sizeof( char ) 计算一个字符的字节数
4*sizeof( char ) 4个字符的字节数
malloc( 4*sizeof( char )) 分配4个字符的存储空间
name[ i ] = (char*)malloc(4*sizeof( char )) 分配的存储空间地址赋值给数组中 name[ i ] 元素
总的来说就是为name[ i ]分配了4个字符的存储空间,而且neme[ i ]是这个存储空间的首地址
name是指针数组,然后存储malloc函数返回的指向字符的首地址。
使用malloc 函数强制类型转换为char 类型