Much cleaner and easier code:
Code:
int main()
{
int i, j, length = 5, elem_to_shift = length;
int myarray[5] = { 1, 2, 3, 4, 5 };
for (i = 0; i < 2; i++)
{
for (j = 0; j < elem_to_shift - 1; j++)
{
/* Move elements backwards */
myarray[j] = myarray[j + 1];
}
elem_to_shift--;
}
myarray[3] = 6;
myarray[4] = 7;
}
Or maybe
Code:
int main()
{
int myarray[5] = { 1, 2, 3, 4, 5 };
memmove(myarray, &myarray[1], 4);
myarray[4] = 6;
}
The second example doesn't seem to work, though.
Since memmove is assembly, I don't really know why it doesn't work, though technically it should.