int *tablica1
tablica1 = (int *)malloc(n * sizeof(int));
Jeśli mam taki kod to*tablica1 nazwać jako wskaźnik do tablicy czy po prostu wskaźnik czy jeszcze inaczej ?
int *tablica1
tablica1 = (int *)malloc(n * sizeof(int));
Jeśli mam taki kod to*tablica1 nazwać jako wskaźnik do tablicy czy po prostu wskaźnik czy jeszcze inaczej ?
Nie rozumiem pytania. tablica1
jest wskaźnikiem do bloku pamięci o rozmiarze n*sizeof(int) i tyle.
a jak jest już w drugiej linijce tablica1 to nazywać to jako tablicę ?
nie, nazywasz nadal to wskaznikiem. Dokladnie to co napisal @Shalom
jest wskaźnikiem do bloku pamięci o rozmiarze n*sizeof(int) i tyle.
Tak jak @Shalom napisał, tam nie ma żadnej tablicy! Jest ciągły blok pamięci i wskaźnik do początku tego bloku, nic więcej.
bo w C że tak powiem właśnie tak rezerwuję się pamięć dla tablicy, czyli dla bloku pamięci ?
Nie rozumiem. malloc przyjmuje jako argument liczbę bajtów do zaalokowania, nic więcej. Nie ma tam mowy o żadnych tablicach. To że potem sobie z tego bloku korzystasz jak z tablicy to jest twoja sprawa. Jeśli już to calloc
jest funkcją do alokacji "tablicy", chociaż w rzeczywistości to niewiele się różni od malloc.
Bo chciałem dwie tablice połączyć w jedną. I chciałem aby użytkownik podawał ich rozmiar i nie wiem czy teraz jest dobrze jak użyłem malloca ?
@nowicjusz35 odpal sobie to:
int tablica[20];
int* wskaznik = malloc(20 * sizeof(int));
printf("rozmiar tablicy: %d, rozmiar wskaznika: %d\n", sizeof(tablica), sizeof(wskaznik));
To nie wiem zmienić na calloc? Bo mam takie zadanie jak napisałem 2 min temu. Czy wtedy użytkownika może podać rozmiar tej tablicy ? Może ktoś podać przykład ?
Jak to zamienić na calloc:
int *tablica1
tablica1 = (int *)malloc(n * sizeof(int));
gdzie n to właśnie liczba jaką podaje użytkownik.
Coś takiego: ?
int tablica1;
scanf("%d",&n);
int* tab = (int*)calloc(n,sizeof(int));
Pomoże ktoś ?
nowicjusz35 napisał(a):
Jak to zamienić na calloc:
Tylko po co? Możesz używać tego co zwróci malloc
jako tablicy, i potocznie nazywamy to tablicą dynamiczną w C właśnie.
To, że to jest blok pamięci i nie jest stricte tablicą, nie powinno mieć dla Ciebie znaczenia.
Bo mam takie zadanie do domu i nie wiem malloc będzie ok ? Bo mam dwie tablice połączyć w jedną. I ilość elementów tablicy podaje użytkownik.
Może podaj całą treść zadania i swoją próbę rozwiązania, bo to co piszesz nie trzyma się kupy. Czym są te dwie tablice? Skoro je łączysz to rozmiar powinien być sumą ich rozmiarów, a nie jakaś podana z palca liczba.