說我在c中有一個叫array_push
的函數。從函數更新指向c數組的指針
void array_push(int *array_pointer, int array_length, int val) {
int i;
int *temp_array = malloc(sizeof(int) * (array_length + 1));
for (i = 0; i < array_length; i++) {
temp_array[i] = *array_pointer;
array_pointer++;
}
temp_array[array_length] = val;
*array_pointer = temp_array;
}
如何更新指針*array_pointer
,使其指向temp_array
和我的程序可以使用新的陣列的其他部分?讓我做這樣的事情
int t[2] = {0,2};
array_push(t, 2);
/* t should now contain {0,2,3} */
你不能這樣做。 't'不是一個指針,它是一個數組,你不能改變數組的大小。 – Barmar 2013-04-06 06:13:42
@Barmar - 你絕對正確。我沒有注意到OP的問題部分首先... – paulsm4 2013-04-06 06:50:35