小编Joã*_*los的帖子

在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;
Run Code Online (Sandbox Code Playgroud)

否则我要将数组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;
Run Code Online (Sandbox Code Playgroud)

但是我会有复制所有数组的开销.

这可能只释放一个阵列的单个位置吗?

c arrays malloc free position

6
推荐指数
1
解决办法
2631
查看次数

标签 统计

arrays ×1

c ×1

free ×1

malloc ×1

position ×1