当我在C++中动态分配数组时,我使用以下内容:
char* arr = new char[length];
因此,当我开始学习C语言时,我自然会使用以下内容来分配我的字符串:
char* arr = malloc(sizeof(char[length]));
然而,我认为常见的做法是使用以下内容:
char* arr = malloc(length * sizeof(char));
上面的陈述是等价的吗,还是有什么理由我不应该使用sizeof(char[length])
?