char *str = malloc (14);
sprintf(str, "%s", "one|two|three");
char *token1, *token2, *token3;
char *start = str;
token1 = str;
char *end = strchr (str, '|');
str = end + 1;
end = '\0';
token2 = str;
end = strchr (str, '|');
str = end + 1;
end = '\0';
...
free(start);由于我已经将字符串中字节设置为null以便对其进行标记化,因此空闲是否可以正常工作?
发布于 2009-09-25 14:35:16
是的,它是有效的,自由并不关心空终止在哪里。或者即使有也是如此。您可以将malloc/free用于任何类型的数据,而不仅仅是以null结尾的字符串。
发布于 2009-09-25 14:35:27
free不检查数据的内容。所以,是的,这是正确的
https://stackoverflow.com/questions/1477643
复制相似问题