2

假设我想打印出存储在“数组”中的整数,这确实是内存中的一个指针。当我使用代码时:

int main(void)
{
  int *arr = malloc(3*sizeof(int));
  int *p = arr;
  *arr++=1;
  *arr++=2;
  *arr=3;

  while (??)           // what should be filled in the while?
    printf("%d",*p);   // so that we can get the validly stored elements?

  return 0;
}
4

1 回答 1

5

C 没有提供内置方法来查找动态分配的内存块的大小。您必须存储大小,并“在侧面”传递它。

解决这个问题的一种方法是创建一个struct组合指针和一个size_t描述数组中分配的元素数量的值。

于 2012-04-07T20:31:58.440 回答