• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zamiana wskaznikow w C

42 Warsaw Coding Academy
0 głosów
632 wizyt
pytanie zadane 11 grudnia 2018 w C i C++ przez MS Początkujący (430 p.)

Witam, w jaki sposob zamienic podane nizej wyrazenie tak zeby nie uzywac wskaznikow,.

int** ar;

ar = (int **)malloc(size * sizeof(int**));

for (i = 0; i < size;i++)
{
     ar[i] = (int *)malloc(size * sizeof(int *));
}

gdzie size jest rozmiarem podanym wczesniej, a ar ma byc tablica dwuwymiarowa.

1 odpowiedź

0 głosów
odpowiedź 11 grudnia 2018 przez criss Mędrzec (172,590 p.)
wybrane 12 grudnia 2018 przez MS
 
Najlepsza

Ten kod generalnie jest niepoprawny. Powinno być:

int** ar;
 
ar = (int **)malloc(size * sizeof(int*));
 
for (i = 0; i < size;i++)
{
     ar[i] = (int *)malloc(size * sizeof(int));
}

(przyjzryj się co jest wewnątrz sizeof)

Co do pytania:

to jest C? W takim razie

int ar[size][size];

Ofc nie jest to dokładnie to samo - jest różnica między pamięcią alokowaną dynamicznie i alokowaną na stosie. Nie możesz posługiwać się pamięcią dynamiczną bez użycia wskaźników, więc nigdy nie będziesz w stanie zamienić podanego przez ciebie kodu tak zeby nie uzywac wskaznikow.

Podobne pytania

0 głosów
1 odpowiedź 3,967 wizyt
0 głosów
2 odpowiedzi 698 wizyt
0 głosów
2 odpowiedzi 1,854 wizyt
pytanie zadane 15 maja 2018 w C i C++ przez Marte Nowicjusz (140 p.)

93,377 zapytań

142,380 odpowiedzi

322,530 komentarzy

62,727 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...