Skocz do zawartości

Temat został przeniesiony do archiwum

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

bartek1648

Wskażniki|zamiana wierszy

Rekomendowane odpowiedzi

#include <stdio.h>

int main(void)
{
   int a[4][4] = {
       { 0, 0, 0, 0 },
       { 1, 1, 1, 1 },
       { 1, 1, 1, 1 },
       { 1, 1, 1, 1 }
   };
   int* wsk[4];
   wsk[0] = a[0];
   wsk[1] = a[1];
   wsk[3] = a[2];
   wsk[4] = a[3];

   int* temp; //zamiana wiersza 0 z 1
   temp = wsk[0];
   wsk[0] = wsk[1];
   wsk[1] = temp;

   int i, j;
   for (i = 0; i < 4; ++i)
   printf("%d\t",a[i][j]);

   return 0;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Eee ale chwalisz się, czy żalisz? :P

 

Jeżeli masz jakiś problem, to zacznij od przeczytania warningów kompilatora - powinien być uruchamiany tak, aby wypisywać prawie wszystko co się da (na dobry początek: -Wall w gcc/clang, /W4 w visualu).

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Panie Jeżu,

ja mam problem,

nie wiem dlaczego

na 1 pozycji jest jakaś liczba nie określona,

a tak wogóle wszytko tu ok?

https://zapodaj.net/c464e415f9d94.bmp.html

nie moge dodać obrazka jest wyżej na srtonie

 

wróć, jest żle, dlaczego wiersze się nie zmieniły, zaraz mnie szlak trafi

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jak coś nie działa tak jak chcesz to na pewno gdzieś coś jest nie ok ;)

 

Dlaczego nie odniosłeś się do warningów? Taki clang z miejsca pokazuje, jak ślepemu, gdzie są błędy.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

jaki warning?

nie mam żadnych

teraz poprawiłem i :mad2:

#include <stdio.h>

int main(void)
{
   int a[4][4] = {
       { 0, 0, 0, 0 },
       { 1, 1, 1, 1 },
       { 1, 1, 1, 1 },
       { 1, 1, 1, 1 }
   };
   int* wsk[4] = { a[0], a[1], a[2], a[3] }; //takie przypisanie działa

/* wsk[0] = a[0];
   wsk[1] = a[1]; to nie działą, nie wiem dlaczego
   wsk[3] = a[2];
   wsk[4] = a[3];
*/
   int* temp; //zamiana wiersza 0 z 1
   // temp = wsk[0];
   wsk[0] = wsk[1];
   // wsk[1] = temp;cy

   int i, j;
   for (i = 0; i < 4; ++i)
       for (j = 0; j < 4; ++j)
           printf("%d\t", wsk[i][j]); //zmieniłem a[][] na wsk[][] wtf???????!!!!!!!to wsk nie modyfikuje tablicy??

   return 0;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

A skonfigurowałeś środowisko by warningi były?

 

wsk[4] = a[3];

4 to indeks wychodzący poza tablicę.

 

Napiszesz w końcu co ma robić ten program? ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

racja,ale dlaczego a się nie zmodyfikowało?

 

racja,ale dlaczego a się nie zmodyfikowało?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Co się miało zmodyfikować?

O którym kodzie mówimy, z postu #5?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

obudwu , nigdzie się tablica a nie modyfikuje

printf("%d\t", wsk[j]);

printf("%d\t", a[j]);

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nic się w niej nie zmienia bo nigdzie nie odnosisz się do jej elementów.

Jedyne co w programie robisz, to zmieniasz wartości w tabeli wsk.

Zmiana wskaźnika a zmiana wartości pod wskaźnikiem to dwie różne rzeczy.

 

Ale rozumiem że czaisz różnicę między tablicą dwuwymiarową statyczną, a dynamicznie alokowaną? ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

hmmm czy widze różnice, no nie

jestem przed czytaniem wykładu na temat dynamiczności,

ale dlaczego nie modyfikuje się, przeceiż tam są przekazywane adresy

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wybacz, ale inaczej niż komiksem tego wytłumaczyć nie mogę :D

 

Są cztery ulice (drewniana, paździerzowa, grochowa, cebulowa), a przy każdej po 4 domy. (tablica a)

 

Bierzesz kartkę, i na niej spisujesz nazwy tych ulic. (tablica wsk)

 

Poprawiasz spis tak, aby zamienić dwa pierwsze napisy miejscami. (zamiana z użyciem temp)

 

Jedyne co robiłeś, to mazanie po kartce - nigdy nie udałeś się na żadną z tych ulic, ani nie odwiedziłeś żadnego domu.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

a, no tak bo :hmm:

zmieniły się tylko w adresy w tej zmiennej, hmmm

ale jak teraz zmodyfikowałem wsk[0][1] = 1648; to się zmieniła wartość w a, no thx teraz rozumiem, dzięki

 

wróć, nie nie to oznacza że nie zmieniłem dalej adresów w tablicy, czyli robie od nowa :P

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

  • Tematy

  • Odpowiedzi

    • ja mam płytę za 400zł od kilku lat i nic złego się z nią nie dzieje. Nie zmieniam sprzętu właśnie dlatego, że działa bezproblemowo. Mam inne podejście. Jako, że mam jakąś tam wiedzę komputerową to kupuje to co potrzebuje. Nie potrzebuje super karty dźwiękowej, sieciowej,  2 kart sieciowych, 2 dźwiękowych, 20 portów USB z tyłu i sata, najlepszej sekcji zasilania. To wszystko mocno podnosi koszta i nagle robi się 2k zł za płytę lub więcej a tych dodatków nigdy nie wykorzystam wręcz będą przeszkadzać bo to dodatkowe coś co może się popsuć i coś co będzie się ładowało przy starcie systemu więc sam system będzie startował dłużej. Wydajnościowo nic się nie zmieni czy to płyta za 500zł czy za 3000zł. Ta płyta za 500zł jest dobra a jak trzeba będzie wymienić płytę bo  to nie będzie szkoda bo dużo nie kosztowała. Przydałoby się wbudowane wifi i 4 banki pamięci ale w przyszłości pamięć pewnie pójdzie do zmiany na jakąś 8000-10000Mhz z większą pojemnością więc obecna pójdzie na sprzedaż.  
    • Szczerze to wydawało mi się że kilka plików, bardziej tak z pamięci napisałem. Jak będę miał chwilę to zassam jakiś film i sprawdzę.
    • Ale tak bylo od wiekow to na prawde zejdz na ziemie i nie skladaj klockow. Wyplata opodatkowana a podatek od nieruchomopsci to calkowicie odmienne tematy. No masz racje na 2024 co wychodzi na duzy + bo drugi spada na 12% do 85K
    • @kola01Ok, dzięki za ogólne wyjaśnienie jak działają chłodzenia i stwierdzenie czy moje chłodzenie, którego nigdy w życiu na własne uszy nie słyszałeś jest ciche lub głośne😆 Bardzo wiele to zmienia w moim życiu, dobra robota👏  Jak "głośny" jest Fortis 5 dual przy swoim maksymalnym RPM 1400 w porównaniu z różnymi aio możesz przeczytać tutaj:  https://www.purepc.pl/test-silentiumpc-fortis-5-i-fortis-5-dual-fan-coolery-dla-procesorow-z-dobrym-stosunkiem-ceny-do-wydajnosci-i-cichymi-wentylator?page=0,7 Może uwierzysz 
    • Nic sobie nie pomyliłem. Z premedytacją nie użyłem nazwy gdyż mowiny o tanich asrocakch, model nie ma znaczenia. Ogólnie beka bo gdy mówię o karcie dźwiękowej narracja zmieniana jest na taką że dobra karta dźwiękowa nie jest potrzebna, można kupić inna, można kupić dac itp (TO SĄ DODATKOWE KOSZTY). Jak mówię o sekcji zasilania to narracja brzmi że pomylelem się z modelem płyty. Cały dowcip polega na tym że to 400zl to nie wiele jak na różnice w tym co dostajemy w tych mobasach. Tzn lepsza dźwiękowka, lepsza sekcja zasilania, lepsze wyposażenie. OGÓŁEM LEPSZA PŁYTA. Jeśli komuś wystarcza biedny kodek audio czy biedna sekcja zasilania to fajnie ale niech nie mówi że ta płyta jest dobra. Jest WYSTARCZAJĄCA dla niego i to wszystko. To tak jak z tymi bułkami z biedronki, dla kogoś są wystarczające, ja wolę kuoic 3x droższe i nie jest odnrazanego barachła. Argumenty że za 900zl płyty też mają kiepskie kodeki audio jest śmieszny bo wystarczy poszukać w specyfikacji technicznej i znaleźć taka która ma normalne audio, wyposażenie czy co tam nas interesuje. Nadal nikt nie odpowiedział, dlaczego nie polecają tanich asrockow na am4? Bo różnica pomiędzy dobrą płyta jest po prostu mniejsza i mówimy o mniejszej skali.  Edit: teraz spojrzałem na morele, nowy tomahawk kosztuje 871zl. Różnica pomiedzy "wystarczającymi" asrockami zaczyna topnieć wiec za niedługo ten post będzie nieaktualny bo i tak wszyscy będą polecali MSI. Obecnie to już 350zl czyli żaden pieniądz. 
  • Aktywni użytkownicy

×
×
  • Dodaj nową pozycję...