我有一個數組,但我不需要它的第一個(或最後一個)位置。所以我給數組的其餘部分指定了一個新變量,但是我應該釋放數組的第一個/最後一個位置。例如:在C中,是否可以只釋放數組的第一個或最後一個位置?
p = read_csv_file();
q = p + 1; // I don't need the first CSV file field
// Here I'd like to free only the first position of p
return q;
否則,我已經到memcpy的數組另一個變量,除第一的位置,然後釋放原始數組。像這樣:
p = read_csv_file();
q = (int*) malloc(sizeof(int) * (SOME_SIZE - 1));
memcpy(q, p+1, sizeof(int) * (SOME_SIZE - 1));
free(p);
return q;
但是,然後我會有複製所有數組的開銷。
這是可能只釋放一個陣列的一個單一的位置?
總之,不,它不是。 – 2010-06-01 00:35:46