2012-04-07 41 views
2

说,如果我想打印出我的整数存储在一个“阵列”,这确实是一个指针memory.When我用里面的代码:知道指针指向的有效元素大小的方法是什么?

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; 
} 
+1

请了解如何格式化您的代码。 – 2012-04-07 20:31:49

回答

5

C没有提供内置的方式找到动态分配的内存块的大小。你必须存储大小,并将其“传到一边”。

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

相关问题