Witam, co musiałbym zmienić, żeby zamiast tab,tab1,tab2 użyć jednego wskaźnika np. tab?
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
const int TABSIZE = 10;
void WyswietlTabliceInt(int* tab)
{
printf("Tablica typu Integer:\n");
for (int i = 0;i < TABSIZE;i++) {
printf("%d\n", tab[i]);
}
printf("\n");
}
void WyswietlTabliceDouble(double* tab1)
{
printf("Tablica typu Double:\n");
int i;
for (i = 0; i < TABSIZE; i++) {
printf("%2.3f\n", tab1[i]);
}
printf("\n");
}
void WyswietlTabliceFloat(float* tab2)
{
printf("Tablica typu Fload:\n");
int i;
for (i = 0; i < TABSIZE; i++) {
printf("%0.5f\n", tab2[i]);
}
printf("\n");
}
int* ZrobTabliceInt()
{
int* tab = (int*)malloc(TABSIZE*sizeof(int));
for (int i = 0 ;i < TABSIZE;i++)
{
tab[i] = (int)&tab[i] % 65536;
}
return tab;
}
double* ZrobTabliceDouble()
{ //!różnica między malloc i calloc
double* tab1 = (double*)malloc(TABSIZE*sizeof(double));//!double* tab = (double*)calloc(TABSIZE,sizeof(double));
for (int i = 0 ;i < TABSIZE;i++)
{
tab1[i] = ((double)((int)&tab1[i] % 65536) * 0.001); //!modulo działa tylko z integer
}
return tab1;
}
float* ZrobTabliceFloat()
{
float* tab2 = (float*)malloc(TABSIZE*sizeof(float));
for (int i = 0 ;i < TABSIZE;i++)
{
tab2[i] = ((float)((int)(&tab2[i]) % 65536) * 0.00001);
}
return tab2;
}
int main()
{
int* tab = ZrobTabliceInt();
WyswietlTabliceInt(tab);
double* tab1 = ZrobTabliceDouble();
WyswietlTabliceDouble(tab1);
float* tab2 = ZrobTabliceFloat();
WyswietlTabliceFloat(tab2);
return 0;
}