Ahoj, mohl by mi prosím někdo poradit, když napíšu tento kod:
#include <stdio.h>
#include <stdlib.h>
typedef struct {int *prvky; int pocet;} pole;
pole vytvoreni() {
pole P;
P.prvky = (int*)malloc (sizeof(int));
P.pocet = 0;
return P;}
int vloz_prvek(pole *P,int i){
P->prvky=(int *) realloc(P->prvky, sizeof(int)*(P->pocet+1));
P->prvky[P->pocet] = i;
P->pocet +=1;
}
void vypis(pole P) {
int i;
for (i = 0; i < P.pocet; i++)
{
printf("%d, ", P.prvky[i]);
}
printf("\n");
}
int odeber_prvek(pole *P,int i){
int j;
for ( j = 0; j < P->pocet; j++){
if(P->prvky[j]==i){
P->prvky[j]=0; //jeste musim doresit
P->pocet = P->pocet -1;
}}}
int main()
{
pole A, B, C;
A=vytvoreni();
vloz_prvek(&A,5);
vloz_prvek(&A,12);
vloz_prvek(&A,8);
vloz_prvek(&A,7);
vloz_prvek(&A,14);
vloz_prvek(&A,20);
printf("Pole A: \n");
vypis(A);
odeber_prvek(&A,20);
vypis(A);
}
tak všechno funguje, ale potřeboval bych, aby funkce main zůstala stejná (stejné volání funkcí) , ale funkce vkládání a odebráni by jako parametr neměly ukazatel, tedy int odeber_prvek(pole P,int i) a int vloz_prvek(pole P,int i).
Zkousel jsem fuknce ve tvaru vloz_prvek(pole P,int i) volat jako vloz_prvek(A,5) a vsechny -> prepsat na . ale stejně se mi to nakonec nepodařilo, navic jsem zmenil fuknci main. Děkuji za rady.