Cześć, mam zrobić coś takiego:
W pliku „odczyt.bin” znajduje się pewna ilość danych w kolejności. rozmiar tablicy typu int (zmienna int).
Tablica o tylu elementach (typu int) ile zapisano wcześniej. Rozmiar tablicy typu float (zmienna int)
Tablica o tylu elementach (typu float) ile zapisano wcześniej.
Zapisz kod, który pobierze dane z pliku a następnie wydrukuje wartości z tablicy typu int.
mój kod:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
FILE *file = NULL;
file = fopen("odczyt.bin","r");
if(file == NULL)
{
printf("Blad otwarcia pliku\n");
return 1;
}
int *tab = NULL;
float *tab2 = NULL;
int x,y;
fread(&x, sizeof(int), 1, file);
tab = (int*)malloc(x);
fread(tab, sizeof(int), x, file);
fread(&y, sizeof(int), 1, file);
tab2 = (float*)malloc(y);
fread(tab2, sizeof(float), y, file);
for(int i =0; i<x; i++)
{
printf("%d ", tab[i]);
}
for(int i =0; i<x;i++)
{
printf("%d ", tab[i]);
}
fclose(file);
return 0;
}
jest jakiś problem z ta linijka:
fread(tab2, sizeof(float), y, file);
gdy jest zakomentowana to tablica tab wyświetla się normalnie:
3500 -14000 1200 2900 -8500 4200 -3300 5525 3500 -14000 1200 2900 -8500 4200 -3300 5525
gdy odkomentuję pojawiają się jakieś losowe liczby:
3500 -14000 1200 2900 1120468992 1110756557 1168759194 1163398758 3500 -14000 1200 2900 1120468992 1110756557 1168759194 1163398758
Gdzie jest błąd, co zmienić żeby program działał? Z góry dzięki.