#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
void losowanie1(int tab1[][], int j, int k)
{
int i, h;
for(i=0;i<j;i++)
{
for(h=0;i<k;h++)
{
tab1[i][h]=rand();
}
}
}
void wypisz1(int tab1[][], int j, int k)
{
int i, h;
for(i=0;i<j;i++)
{
for(h=0;i<k;h++)
{
printf("%d\t", tab1[i][h]);
}
printf("\n");
}
}
void losowanie2(int tab2[][], int m, int n)
{
int i, h;
for(i=0;i<m;i++)
{
for(h=0;i<n;h++)
{
tab2[i][h]=rand();
}
}
}
void wypisz2(int tab2[][], int m, int n)
{
int i, h;
for(i=0;i<m;i++)
{
for(h=0;i<n;h++)
{
printf("%d\t", tab2[i][h]);
}
printf("\n");
}
}
int main()
{
srand(time(NULL));
int j, k, m, n;
printf ("Podaj liczbe wierszy tabeli 1: \t\n");
scanf ("%d", &j);
printf ("Podaj liczbe kolumn tabeli 1: \t\n");
scanf ("%d", &k);
printf ("Podaj liczbe wierszy tabeli 2: \t\n");
scanf ("%d", &m);
printf ("Podaj liczbe kolumn tabeli 2: \t\n");
scanf ("%d", &n);
getchar();
int* tab1=(int*)malloc(sizeof(int)*j*k);
int* tab2=(int*)malloc(sizeof(int)*m*n);
losowanie1(tab1[][], j, k);
wypisz1(tab1[][], j, k);
losowanie2(tab2[][], j, k);
wypisz2(tab2[][], j, k);
free(tab1);
free(tab2);
return 0;
}
Mam problem z pewnym programem, a w zasadzie już z samym jego początkiem. Mój problem polega na tym, że poniższy program, który póki co tylko wypełnia tablice dwuwymiarowe o zadanej liczbie wierszy i kolumn nie kompiluje się. Pojawia się log z błędami:
|6|error: array type has incomplete element type|
|18|error: array type has incomplete element type|
|30|error: array type has incomplete element type|
|42|error: array type has incomplete element type|
||In function 'main':|
|70|warning: initialization from incompatible pointer type [enabled by default]|
|71|warning: initialization from incompatible pointer type [enabled by default]|
|73|error: expected expression before ']' token|
|73|error: type of formal parameter 1 is incomplete|
|74|error: expected expression before ']' token|
|74|error: type of formal parameter 1 is incomplete|
|75|error: expected expression before ']' token|
|75|error: type of formal parameter 1 is incomplete|
|76|error: expected expression before ']' token|
|76|error: type of formal parameter 1 is incomplete|
||=== Build failed: 12 error(s), 2 warning(s) (0 minute(s), 0 second(s)) ===|
Mój problem, jak sądzę, polega na jeszcze dość kiepskiej znajomości wskaźników. Najbardziej zależy mi na rozwiązaniu błędów z nimi związanych.
Program ten pisałem bazując na podobnym, z tym, że pracującym na tablicy jednowymiarowej. Jak się okazuje, przerobienie go na taki, aby w pełni sprawnie działał na tablicach dwuwymiarowych okazało się ponad moje się.
Przejrzałem trochę forów, lecz nigdzie nie mogę znaleźć tego, co mnie interesuje: mianowicie sytuacji, kiedy wielkość tablicy jest zadana przez użytkownika. Wszędzie, gdzie szukałem, napotykałem na przykłady tablic o znanym rozmiarze, a że jestem osobą uczącą się przede wszystkim na przykładach, mam z rozwiązaniem mojego problemu problem.
Z góry dziękuję za wszelką pomoc, nakierowanie na dobre rozwiązanie, a także liczę na objaśnienia w przykładach.
///Kod jest w trakcie powstawania, mogą być w nim liczne niedociągnięcia niezwiązane z problemem natury wskaźników. Jednakże także ich zauważenie docenię.