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