我有一个接收char *
参数的函数:
Foo::Foo (char * arg0) {
....
}
在原始示例中, achar[]
用于传递此值...
char bar[] = "Bar";
Instance.foo (bar);
...效果很好。
但是,我发现我可以传递一个字符串文字,转换为 a char *
,而编译器不会发出任何警告。
Instance.Foo ((char *) "Bar");
但是,从我的阅读来看,似乎应该避免 - 指向的内存值可能会改变。
上述陈述是真的(“应该避免”)还是在这种情况下合适?
编辑 - 进一步的研究发现这篇文章很好地解决了我的问题......