我应该用malloc分配多少空间?

时间:2015-07-07 17:59:17

标签: string malloc

我正在编写一个读取字符串不超过20个字符的程序,但我必须使用malloc进行动态内存分配。问题是我不知道有多少空间我可以释放20个字符串。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

char * string = malloc(sizeof(char) * 21)

答案 1 :(得分:0)

对于长度为(最多)20个字符的字符串,您需要分配21个字节(1表示标记字符串结尾的'\0'空字符)。例如:

char *s = malloc(21);

您应该为最大长度定义命名常量:

#define MAX_LEN 20
char *s = malloc(MAX_LEN + 1);
if (s == NULL) {
    /* malloc failed, take some corrective action or just terminate */
}