Fla*_*laz 3 c malloc sizeof
我想知道sizeof(char)和sizeof(char*)之间是否存在差异:
char *s; s = malloc(sizeof(char*)*len + 1); char *s; s = malloc(sizeof(char)*len + 1);
这是一样的吗?
Mik*_*CAT 12
char是一个字符,sizeof(char)定义为1.(N1570 6.5.3.4 sizeof和_Alignof运算符,第4段)
char
sizeof(char)
char*是指向角色的指针,sizeof(char*)取决于环境.它通常在32位环境中为4,在64位环境中为8.
char*
sizeof(char*)
在典型的环境下sizeof(char*) > sizeof(char),malloc(sizeof(char*)*len + 1)将(至少尝试),比分配更多的内存malloc(sizeof(char)*len + 1),如果len是足够小,不会导致整数溢出.
sizeof(char*) > sizeof(char)
malloc(sizeof(char*)*len + 1)
malloc(sizeof(char)*len + 1)
len
归档时间:
9 年 前
查看次数:
11239 次
最近记录: