gpt4 book ai didi

c - 赋值丢弃指针目标类型的限定符

转载 作者:太空宇宙 更新时间:2023-11-04 01:06:19 25 4
gpt4 key购买 nike

我收到这个警告:

warning: assignment discards qualifiers from pointer target type

问题是,symbolP 不是const。我不想在循环中每次都创建 const char *symbolP。我怎样才能以更好的方式解决它。这里是片段:

int getList(OCI_Connection* cn)
{
OCI_Statement* st;
OCI_Resultset* rs;
char *symbolP;

char *query ="SELECT ..";

st = OCI_StatementCreate(cn);
OCI_ExecuteStmt(st, query);
rs = OCI_GetResultset(st);
while (OCI_FetchNext(rs))
{
//here comes the warning:
symbolP = OCI_GetString(rs,1);
}
return 1;
}

最佳答案

使用const char *symbolP没有错,而且效率不亚于使用char *symbolP。此外,指针仍可分配:

  • const char * = 指向常量 char
  • 的非常量指针
  • char * const = 指向非常量 char
  • 的常量指针
  • const char * const = 指向常量char的常量指针

现在,如果您没有显示的代码实际上修改了指向的字符串,那么这是一个错误,您需要先制作一个可修改的副本。这也是使用正确的 const char * 指针的一个很好的理由:您将得到正确的错误。

关于c - 赋值丢弃指针目标类型的限定符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22484538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com