c - 如何使用指针算术循环分配的内存 C

标签 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));

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

最佳答案

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);

关于c - 如何使用指针算术循环分配的内存 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43856010/

相关文章:

C - 写访问冲突

c - 提取数组中的唯一元素(来自 K 和 R C ex1-14)

c - malloc 如何申请堆内存

C++ 指针和类成员的关系如何工作?

c - 使用 fgets() 从文件读取然后在另一个函数中使用信息

c - fprintf 和 difftime 疯狂

在C中创建数组列表

javascript - 与数组比较返回数组 _ lodash

c++ - 我可以将 std::any 与 C++17 一起用于指向成员变量的指针吗?

c - 返回值显示到屏幕时的函数错误