如何使用指针算法C循环分配的内存

时间:2017-05-08 19:38:24

标签: c arrays pointers pointer-arithmetic

为了循环使用指针算法的常规int数组,如下所示:

 int *p;
 int arraySize = 20;

 int array[arraySize];     

 for (p = array; p< array+(sizeof(array)/sizeof(int)); p++){
    int random = rand() % 200;
    *p = random;
  }

 for (p = array; p< array+(sizeof(array)/sizeof(int)); p++){
    printf("%d\t%x\n", *p, p);
  }



 for (p = array; p<array+(sizeof(array)/sizeof(int)); p++){
        int random = rand() % 200;
        *p = random;
  }

 for (p = array; p< array+(sizeof(array)/sizeof(int)); p++){
        printf("%d\t%x\n", *p, p);
  }

但是,我想宣布:

int *array = (int*) calloc(arraySize, sizeof(int));

我对如何循环动态分配的内存非常困惑,而不是常规的静态数组。

1 个答案:

答案 0 :(得分:0)

int *array = (int*)calloc(arraySize, sizeof(int));
int *array_end = array + arraySize;
int* ptr;
for(ptr = array; ptr < array_end; ptr++)
    printf("%p\t%d", ptr, *ptr);