malloc(sizeof(char[length])) 不正确吗?

问题描述 投票:0回答:1

当我在 C++ 中动态分配数组时,我使用以下内容:

char* arr = new char[length];

很自然地,当我开始学习 C 时,我一直使用以下方法来分配我的字符串:

char* arr = malloc(sizeof(char[length]));

但是,我发现常见的做法是使用以下内容:

char* arr = malloc(length * sizeof(char));

上面的陈述是否等效,或者有什么理由我不应该使用

sizeof(char[length])

arrays c memory malloc
1个回答
0
投票

两者实际上是相同的。

sizeof(char[length])
计算长度为
char
length
数组的大小(以字节为单位)。该值与
length * sizeof(char)
相同。

虽然后者更常见,但前者也很好。

© www.soinside.com 2019 - 2024. All rights reserved.