Cześć! Od godziny męczę się ze znalezieniem wielkości tablicy dynamicznej. Mój kod:
#include <stdio.h>
#include <stdlib.h>
int size_1 = 0;
int size_2 = 0;
int i = 0;
void insert(int x, int Q[]){
if(size_1 == 0){
*(Q+size_1) = x;
++size_1;
}
else{
for(i = 0; i < size_1; ++i){
if( *(Q+i) == x ){
break;
}
if( size_1-1 == i ){
*(Q+size_1) = x;
++size_1;
}
}
}
}
int main() {
int *Q, *S;
Q = malloc(size_1 * sizeof(int));
S = malloc(size_1 * sizeof(int));
insert(1, Q);
insert(2, Q);
}
Z tego co wyczytałem to nie da się pobrać wielkości tablic dynamicznych więc w jaki sposób to obejść? W przypadku gdy chcę uzyc insert(1,S) (czyli wrzucenie czegoś do innej tablicy niż Q) potrzebuję jej wielkość w funkcji insert, aby program dobrze działał.
Próbowałem strukturami, ale jakoś nie widzę rozwiązania.. Jakieś dziwne skomplikowane porównania też pewnie sensu nie będą miały i będą zawierały wiele wyjątków..
Nie mogę też dodać nowego parametru do funkcji insert. Jedynymi argumentami są insert( LICZBA, NAZWA TABLICY ).
Jakieś propozycje?