配列がありますが、最初 (または最後) の位置は必要ありません。したがって、新しい変数を配列の残りの部分に向けますが、配列の最初/最後の位置を解放する必要があります。例えば:
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;
しかし、すべての配列をコピーするオーバーヘッドがあります。
配列の 1 つの位置だけを解放することは可能ですか?