2011-05-05 142 views
2

我是新來的c。我想創建數組,然後將其刪除,然後將另一個數組放入其中。我該怎麼做?C:刪除陣列

+1

你能告訴我們你是如何分配數組的嗎?如果你使用malloc,你可以使用free來釋放它,然後分配一個新的。 – 2011-05-05 14:52:53

+0

是的,我用malloc – Tom 2011-05-05 14:55:18

+0

如果你使用malloc,你有代碼。如果你有代碼,你應該發佈它。 – abelenky 2011-05-05 15:17:55

回答

5

如果您在C中尋找動態數組,它們相當簡單。

1)聲明一個指針來跟蹤存儲器,
2)分配內存,
3)使用存儲器,
4)釋放內存。

int *ary; //declare the array pointer 
int size = 20; //lets make it a size of 20 (20 slots) 

//allocate the memory for the array 
ary = (int*)calloc(size, sizeof(int)); 

//use the array 
ary[0] = 5; 
ary[1] = 10; 
//...etc.. 
ary[19] = 500; 

//free the memory associated with the dynamic array 
free(ary); 

//and you can re allocate some more memory and do it again 
//maybe this time double the size? 
ary = (int*)calloc(size * 2, sizeof(int)); 

calloc()信息可以發現here,同樣的事情可以用malloc()通過,而不是使用malloc(size * sizeof(int));

2

這聽起來像你問是否可以重新使用指針變量指向完成分配給不同時間的堆分配區域。是你可以:

void *p;   /* only using void* for illustration */ 

p = malloc(...); /* allocate first array */ 
...    /* use the array here */ 
free(p);   /* free the first array */ 

p = malloc(...); /* allocate the second array */ 
...    /* use the second array here */ 
free(p);   /* free the second array */