Cześć wszystkim. Mam funkcję, która podnosi do potęgi drugiej elementy w tablicy:
int *tabSquares(int *tab, size_t tSize)
{
for(int i = 0; i < tSize; i++)
tab[i] = tab[i]*tab[i];
return tab;
}
następnie w main() próbuje tak:
int *tSquares = tabSquares(tab,3);
gdzie tab to: int tab[3] = {3,6,9}; Niestety przy odczytywaniu tSquares wyskakuje błąd naruszenia pamięci. Czyli jak sądzę ta linijka w main jest zła. Czy da się do wskaźnika jakoś przekazać adres tej tablicy, żebym mógł posługiwać się tym w tSquares ?
Drugi problem:
ponadto, utworzona wcześniej w main tablica ** int tab[3] = {3,6,9};** zmienia swoją zawartość po wywołaniu funkcji tabSquares;
czy istnieje jakiś inny sposób niż tworzenie nowej tablicy w funkcji tabSquares i skopiowanie do niej tablicy tab aby ta właśnie tablica tab nie zmieniła wartości w main ?