通过循环将数据复制到整数指针数组吗?

时间:2019-05-08 20:36:58

标签: c pointers memory heap-memory

我面临通过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
               );
}

1 个答案:

答案 0 :(得分:0)

如果您有这样的事情:

int *x = malloc(sizeof(int)*4);

您可以使用指针算法将值放入其中:

for(int i = 0; i < 4; i++) {
    *(x+i) = i; // or *(x+1) = 0; for example
}

或者简单地:

for(int i = 0; i < 4; i++) {
    x[i] = i;
}