У меня есть массив 0 1 2 4 5 6 7 8 9. Я хочу вставить 3 между 2 и 4.
Длина остается неизменной после вызова функции, хотя я добавил значение, почему?
printf("%d,", feld[9]);
дает мне правильное значение, код работает, но я получаю предупреждение.
Как мне вставить значение, даже если я инициализирую int feld[9] = {0,1,2,4,5,6,7,8,9};
или int feld[] = {0,1,2,4,5,6,7,8,9};
?
nt insertArray(int* array, int length, int value, int pos)
{
int i;
if (pos < length)
{
for (i = length; i > pos; i--)
{
array[i] = array[i - 1];
}
array[i] = value;
length++;
}
else if (pos == length)
{
array[pos] = value;
length++;
}
return length;
}
int main()
{
int feld[9] = {0,1,2,4,5,6,7,8,9};
size_t length = sizeof(feld) / sizeof(int);
insertArray(feld, length, 3, 3);
length = sizeof(feld) / sizeof(int);
for (int i = 0; i < length; i++)
{
printf("%d,", feld[i]);
}
printf("\n");
printf("%d,", feld[9]);
return 0;
}