在块中分配字符文本"if"

Assign char literal in "if" block

本文关键字:文本 if 字符 分配      更新时间:2023-10-16

我现在对这段代码感到困惑。

int flag = 1;
struct {
    char * data;
}
neco;
if(flag) {
    neco.data = "index.html";
}
// insert code here...
std::cout << neco.data;
}

可以安全地打印neco。"if"块后的数据,或在"if"块结束后,如果块内分配的内存被"清理"?

可以安全地打印neco。"if"块之后的数据,或分配的内存内部if块是"清洁"后"if"块结束?

字符串字面值永远不会超出范围。程序本身就是它们的作用域。

正如us2012在评论中提到的,您需要确保neco。

可以安全地打印neco。"if"块之后的数据,或者在"if"块结束后,如果块内部分配的内存被"清理"?

所讨论的字符串字面量"index.html"将在if块结束后继续存在,因此在这方面代码是好的。