【发布时间】:2019-09-26 15:45:17
【问题描述】:
我正面临通过 for 循环将数据复制到 void 指针数组的问题。我不允许使用双指针。
我正在尝试这样的事情:
for(i=0;i<9;i++){
array + i = i;
}
但我不能这样做,我知道,
我正在尝试这样做
memcpy(
array+i,
i,
s
);
我已经分配了内存: 我的实际代码是这样的:
if(v->e_type==V_INT){
// printf("%p ",v->e_array+v->no_e);
memcpy(
v->e_array+v->no_e,
new_val,
v->e_sz
);
}
【问题讨论】:
-
使用双指针非常简单,如下所示:v->e_array[v->no_e]=new_val;
-
除非您向我们展示每个变量是如何声明、分配和作为参数传递的,否则任何人都只能猜测。您的
v->e_array[v->no_e]=new_val;很可能需要为(v->e_array)[v->no_e]=new_val;,但无法判断您发布的内容。 -
@DavidC.Rankin
->和[]具有相同的优先级,并且具有从左到右的关联性,所以不需要括号,对吧? -
是的,但问题是我不允许使用双指针
-
但是你用的是什么?我们不知道,因为你没有给我们看。你刚才说的是指针数组,一点都不清楚
标签: c pointers memory heap-memory