Potřebuju mít něco, co uchová max 20 prvků, takže 127 stačí. Ale když to dělám takhle, tak jich uchovám kolem 15ti a to ještě ve všech podobných polích a potřebuju 4.
Tady přikládám celý zdroják, který jsem zatím napsal.
#include <stdio.h>
#include <stdlib.h>
char** PridatPrvek(char **R, char a, char b) {
char **Ret;
if (R[0][0] > 0) {
int i;
int m = R[0][0] + 1;
Ret = (char**)malloc(m * sizeof(char*));
for (i = 0; i < m; i++) {
Ret[i] = R[i];
}
Ret[0][0] = m;
Ret[m] = (char*)malloc(2 * sizeof(char));
Ret[m][0] = a;
Ret[m][1] = b;
} else {
Ret = (char**)malloc(sizeof(char*));
Ret[0] = (char*)malloc(2 * sizeof(char));
Ret[1] = (char*)malloc(2 * sizeof(char));
Ret[0][0] = 1;
Ret[1][0] = a;
Ret[1][1] = b;
}
return(Ret);
}
int ObsahujePrvek(char **R, char a, char b) {
if (R[0][0] > 0) {
int i;
for (i = 1; i <= R[0][0]; i++) {
if (R[i][0] == a && R[i][1] == b)
return(1);
}
}
return(0);
}
void VypsatRelaci(char **R) {
if (R[0][0] > 0) {
int i;
printf("{");
for (i = 1; i <= R[0][0]; i++) {
printf("(%d, %d), ", R[i][0], R[i][1]);
}
printf("}");
}
}
int main()
{
char **R;
char **Ref;
char **Sym;
char **Tra;
R = (char**)malloc(sizeof(char*));
R = PridatPrvek(R, 0, 2);
R = PridatPrvek(R, 1, 2);
R = PridatPrvek(R, 2, 0);
R = PridatPrvek(R, 2, 2);
R = PridatPrvek(R, 2, 4);
R = PridatPrvek(R, 2, 2);
R = PridatPrvek(R, 2, 4);
R = PridatPrvek(R, 2, 2);
R = PridatPrvek(R, 2, 4);
R = PridatPrvek(R, 2, 2);
R = PridatPrvek(R, 2, 4);
R = PridatPrvek(R, 2, 4);
//printf("%d", ObsahujePrvek(R, 1, 2));
VypsatRelaci(R);
return 0;
}