Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 分配丢弃‘;常数’;指针目标类型的限定符-尝试检索值时_C_Couchbase - Fatal编程技术网

C 分配丢弃‘;常数’;指针目标类型的限定符-尝试检索值时

C 分配丢弃‘;常数’;指针目标类型的限定符-尝试检索值时,c,couchbase,C,Couchbase,Couchbase使用基于事件的模型。因此,为了检索值,我必须设置回调处理程序,然后在数据库中抛出get请求。是这样做的: [... some stuff happens] /* set up a callback for our get requests */ lcb_set_get_callback(instance, get_callback); 在get\u回调中我有一个cookie来输入我的值。因此,我解析返回的对象,并通过以下方式将其放入cookie: json_t *objec

Couchbase使用基于事件的模型。因此,为了检索值,我必须设置回调处理程序,然后在数据库中抛出get请求。是这样做的:

[... some stuff happens]
/* set up a callback for our get requests  */
lcb_set_get_callback(instance, get_callback);
get\u回调中
我有一个
cookie
来输入我的值。因此,我解析返回的对象,并通过以下方式将其放入cookie:

json_t *object;

[... some error handling and parsing]

/*Put the json_object into the cookie*/
lcb_set_cookie(instance, object);
当我想要检索它时,我必须使用
lcb_get_cookie
,它返回一个空指针,但会说:“lcb_get_cookie()返回由lcb_set_cookie()设置的值,如果 lcb_set_cookie()未设置任何值。因此,我想执行以下操作:

/* Retrieve the ad out of the cookie*/
ad_json = lcb_get_cookie(instance);
当我尝试这样使用它时,我得到一个警告:
警告:分配从指针目标类型中丢弃“const”限定符[默认启用]
。所以我很困惑。如何检索我输入到cookie中的值

编辑:
我忘了提到我需要进一步处理数据并希望对其进行更改。

告诉编译器您承诺不更改该cookie:

json_t const * object = lcb_get_cookie(instance);
但如果您需要更改它,您可能会强制转换它,因为手册上说“…libcouchbase不行。” 任何有价值的东西。”:

但也许更安全的替代方法是将内容复制到新的cookie中,进行更改并重新设置

我不知道
json\u t
的确切布局,因为如果它不包含任何内部指针,简单的赋值可能会起作用:

 json_t const * old = lcb_get_cookie(instance);
 json_t * new = /* init pointer with your new object */;
 *new = *old; /* Copy data */

就是这样。我想对它进行更改。我忘了提它,我会修改我的问题。我喜欢复制它的想法。我该怎么做呢?我对C的掌握还很初级谢谢你迅速而彻底的帮助,好先生!
 json_t const * old = lcb_get_cookie(instance);
 json_t * new = /* init pointer with your new object */;
 *new = *old; /* Copy data */