To znooowu ja.
Czy ktoś mógłby rzucić okiem na mój kod? Niby się kompiluje, niby coś tam wyświetla, ale nie jestem w 100% przekonana, że jest poprawny.

W dane.dat zapisano binarnie: liczbę kolumn, wierszy oraz dane z tablicy typu double (tablica dwuwymiarowa). Zaalokuj pamięć na tę tablicę i przypisz kolejnym komórkom wartości z pliku binarnego.
Plik dane.dat w załączniku, a oto kod:

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    FILE *plik;
    double **tab;
    int k, w, i, j;
    plik=fopen("dane.dat", "rb");
    fread(&k, sizeof(int), 1, plik);
    fread(&w, sizeof(int), 1, plik);
    printf("%d %d\n", w, k);

    tab=(double**)malloc(sizeof(*tab)*w);
    for(i=0;i<w;i++)
        tab[i]=(double*)malloc(sizeof(**tab)*k);

    if(tab)  printf("Udalo sie.\n");
        for(i=0;i<w;i++)
        {
            printf("\n");
            for(j=0;j<k;j++)
            {
                fread(&(tab[i][j]), sizeof(double), 1, plik);
                printf("%.2f ", tab[i][j]);
            }

        }

    for(i=0;i<k;i++)
        free(tab[i]);
    free(tab);

}