我今天看到了这个代码,我不完全确定它会做什么:
pLogFileCriteria->taskToLogFor[0][0] = *"*";
它将值设置为指向堆栈中的本地字符串的指针?因此,当它退出此功能时,该内存是否仍然存在?似乎对我说鱼。
答案 0 :(得分:4)
*"*"
的类型为const char
。您的代码段正在为左侧计算的位置分配char
值。
这会做同样的事情:
pLogFileCriteria->taskToLogFor[0][0] = '*';
答案 1 :(得分:1)
字符串文字具有静态持续时间。它们存在于程序的生命周期中,因此获得指向它的第一个字符的指针在该函数之后仍然有效。但请注意间接算子。它将导致指向第一个字符的指针被取消引用,从而产生该字符。