您无法调整C中的数组大小。一旦创建了它的大小,它的大小就是固定的。 如果您可以使用动态内存和指针而不是阵列,则可以使用realloc
来调整它的大小。
但是看着你的目的,你实际上并不需要调整的数组,你可以减少size_of_array
而忽略其余的值,例如:
size_of_array -= 4;
编辑: 为了澄清我的意思通过忽略价值。我假设通过创建一个数组,你打算实际上有一些工作与它的元素,否则有阵列将是毫无意义的。因此,当你在数组上进行工作时,只需要在你不会忽略的元素上进行操作。让我们为求举例说,我们要打印的数组的值作为我们的“工作”:
void printArray(int *array, size_t size) {
for (size_t itr = 0; itr < size; ++itr) { printf("%d", array[itr])); }
}
int main(int argc, char *argv[]) {
int values[] = {1,2,3,4,5,6,7};
int size_of_array = 7;
int specified_index = 3;
// Print the whole array
printArray(values, size_of_array);
// Print the 'shortened' array by ignoring the rest of the values
size_of_array -= 4;
printArray(values, size_of_array);
}
“道歉”,不后悔但不要问新之前执行的答案基本搜索题。 – kaylum
如果您跟踪数组中的元素,请使用size_of_array ....只需完成“size_of_array = 3”! –