Cześć, mam do napisania funkcję, która ma za zadanie przypisać 5 elementów do tablicy w celu wykonania obliczen na tych 5 elementach. Po zakończeniu obliczen tablice mam przesunąć o jeden element w prawo i tak aż do momentu kiedy ostatni element tablicy 5 elementowej bedzie też ostatnim elementem tablicy wynikowej. Funkcje napisałem i działa ona tylko wtedy kiedy tablica wynikowa ma 5 lub 6 elementów dla wartości większych wywala błąd taki jak w tytule("dzialaniamatematyczne.exe has triggered a breakpoint") :/ nie mam pojecia co moze być źle. Pisze w Visual Studio.
#include <stdio.h>
#include <stdlib.h>
void przepisywanie(int* tab1, int rozmiar)
{
int i, z, x = 0;
int *tab = (int*)malloc(5 * sizeof(int));
int index, n;
printf("Tablica przepisana:\n");
for (n = 2; n < rozmiar - 2; n++)
{
index = 2 * n + 1;
if (x == 0)
z = index + 1;
else
z = index - (x - 1);
index -= 5 + x;
x++;
puts("XXXXX");
for (i = index; i < z - 1; i++)
{
*(tab+i) = *(tab1 + i);
printf("%d\n", *(tab + i));
}
}
}
int main()
{
int* tab = NULL;
int rozmiar=50;
tab = (int*)malloc(rozmiar* sizeof(int));
puts("Elementy tablicy:");
for (int i = 0; i < rozmiar; i++) {
*(tab + i) = i * i;
printf("%d\n", *(tab + i));}
przepisywanie(tab, rozmiar);
return 0;
}