2012-04-07 73 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值。

相關問題