Witam,
chce napisać program, który odwraca tablice dowolnego typu. Niestety program wywala się przy linijce
strcpy(tmp, t1); //
#include <stdio.h>
#include <stdlib.h> //malloc free
#include <string.h>
void mySwap(char t1, char t2, int roz)
{
char *tmp = (char *) malloc(roz+1);
strcpy(tmp, t1);
//strcpy(t1, t2);
//strcpy(t2, t1);
}
//tab - adres poczatku tablicy
//rozmiar - ilosc elementow tablicy
//krok -rozmiar pojedynczego elementu
void odwrocTablice(void *tab, const int rozmiar,const int krok)
{
int wielkoscTablicy = rozmiar * krok; //wielkosc tablicy w bajtach
char *tablica =(char*) malloc(wielkoscTablicy);
int i; //iterator petli
bcopy(tab, tablica, wielkoscTablicy);
for(i = 0; i < (rozmiar / 2) ; ++i)
{
mySwap(tablica[i], tablica[rozmiar - 1 - i], rozmiar);
}
free(tablica);
}
int main()
{
int tab[] = {3, 4, 5, 6};
odwrocTablice(tab, 4, sizeof(int));
printf("0 = %d, 1 = %d", tab[0], tab[1]);
}