我有一个函数,它以char *作为唯一的参数。然后我执行一些strtok操作。有时候它有效,有时候它会发挥作用。它的工作取决于字符串是如何构建的。比如这里有两种情况。c字符串分配的区别?
int main()
{
char glob[] = "/abc/def/ghi";
char *glob2 = "/abc/def/ghi";
func(glob); //this one works
func(glob2); //this one doesnt work
return 0;
}
这两种分配方法之间的区别是什么,为什么strtok为第二个分配方法炸掉?
阅读litb的char *和char *之间区别的优秀帖子 - http://stackoverflow.com/questions/308279/c-strings-vs/308724#308724 – Falaina 2009-08-04 14:11:18
将字符串常量赋给char *(取而代之的const char *)只是由于历史原因才合法。它被认为已被弃用,一些编译器会向你发出警告。 – 2009-08-04 14:13:22