Konwersja void * na tablicę o określonym rozmiarze

0

Czy istnieje sposób na konwersję typu void * na tablicę o nieskonkretyzowanym typie... To znaczy... na interpretacje void * do tablicy typu zależnego od wartości parametru (świadczącym o jej rozmiarze).

Przykład funkcji:

void fun(void * tab, int * zwrotny, const int rozmiarTablic, const int rozmiarElementu)
{
	for (int a = 0; a < rozmiarTablic; a++) {
		zwrotny[a] = (int)((char *)tab)[a]; // poprawne
		zwrotny[a] = (int)((konwersja na rozmiarElementu *)tab)[a]; // jest mozliwe?
	}
}

Przykład wywołania:

int _tmain(int argc, _TCHAR* argv[])
{
	char tekst [] = "metal";
	int tablica[10];

	fun(tekst, tablica, strlen(tekst), sizeof(char));
}

Oczywiście mógłbym to rozwiązać przy pomocy szablonów.

dodanie znaczników <code class="cpp"> - fp

1
void fun(void *tab,int *zwrotny,int rozmiarTablic,int rozmiarElementu) // const int jako parametr nie ma najmniejszego sensu.
  {
   for(int a=0;a<rozmiarTablic;++a)  memcpy(zwrotny+a,((char*)tab)+a*rozmiarElementu,rozmiarElementu);
  }

1 użytkowników online, w tym zalogowanych: 0, gości: 1