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

Rzutowanie na int

+1 głos
1,945 wizyt
pytanie zadane 27 kwietnia 2015 w C i C++ przez aspoka Mądrala (5,290 p.)
Jak przerzutować adres komurki na zmienną typu int (xCode)?

5 odpowiedzi

+1 głos
odpowiedź 27 kwietnia 2015 przez hit02 Nałogowiec (33,970 p.)
wybrane 27 kwietnia 2015 przez aspoka
 
Najlepsza
Zazwyczaj w C++ rzutuje się tak: (int)variable. Nie dokońca rozumiem, co masz namyśli pisząc adres komórki. Jeśli chodzi o adres w tablicy, to on odrazu jest intem, a jeśli o adres komórki tablicy w pamięci, to będzie (int)(&tab[number]).
komentarz 27 kwietnia 2015 przez aspoka Mądrala (5,290 p.)
Żeby jeszcze ta opcja u mnie była, xD
komentarz 27 kwietnia 2015 przez jeremus Maniak (59,720 p.)

a jaka masz wersję Xcode

niżej piszą że Xcode 4.6.3 nie ma juz tego blędu

komentarz 27 kwietnia 2015 przez aspoka Mądrala (5,290 p.)
4.6.3 xD

Wszyscy mi mówią, że ja wszystko zepsuje, ale żeby kompilator zepsuć xD
komentarz 27 kwietnia 2015 przez jeremus Maniak (59,720 p.)

szukałeś tak tej opcji ?

A workaround for this problem might be to switch from lldb to gdb. It worked for me.

You do this in the scheme editor (press command + <). Change the debugger to gdb in the Run scheme.

komentarz 27 kwietnia 2015 przez aspoka Mądrala (5,290 p.)

Tak i pokazało mi się coś takiego:

0 głosów
odpowiedź 27 kwietnia 2015 przez Bondrusiek Maniak (61,440 p.)
#include<iostream>
#include<string>
#include <string.h>

using namespace std;

int main()
{
char liczba[100]; // tablica na liczbe (może być np. system szesnastkowy gdzie wystepuja litery oprocz cyfr)
int p = 1, wynik = 0, system, x;
cout << "Podaj system w jakim zapisana jest liczba <2,16>: ";
cin >> system;
int b ;
cout <<"Adres &b to " <<  &b << endl ;
cout << "Przepisz adres &b bez 0x a zobaczysz jaka to liczba" << endl;
cout << "Podaj liczbe: ";
cin >> liczba;
cout << "Liczba " << liczba << " w systemie dziesietnym wynosi ";
for (int i = strlen(liczba)-1; i >= 0; i--) // zaczynamy od konca tablicy i poruszamy sie do przodu - do indeksu 0
{
if (liczba[i] >= '0' && liczba[i] <= '9') // jezeli cyfra
x = liczba[i]-'0'; // to odejmujemy kod zera - zamieniamy kod cyfry na cyfre
else // jezeli litera - musi byc duza
x = liczba[i] - 55; // to odejmujemy 55 np. A(65) - 55 = 10
wynik += x*p; // do wyniku dodajemy otrzymana wartosc pomnozana przez podstawe systemu do odpowiedniej potegi
p *= system; // ustawiamy p na odpowiednia potege systemu
}
cout << wynik << endl;
return 0;
}

Ten program może zamieniać liczbe zapisana w systemie szesnastkowy oraz binarny na dziesiętny.

Jak skompilujesz ten program wybierasz 16/przepisujesz adres bez 0x/ wyświetla Ci się wynik.

0 głosów
odpowiedź 27 kwietnia 2015 przez Dragonet.17 Pasjonat (19,630 p.)
Co innego rzutowanie na int , a zmiana liczby z systemu 16 na 10.
Zobacz sobie w odcinku o wskaźnikach
0 głosów
odpowiedź 27 kwietnia 2015 przez jeremus Maniak (59,720 p.)
a dlaczego chcesz  wskaźnik 4 bajtowy rzutować na 2 bajty ?

po co Ci ta okrojona informacja  ( dwa starsze bajty wskaźnika )?
0 głosów
odpowiedź 27 kwietnia 2015 przez aspoka Mądrala (5,290 p.)

Jeszcze mam pytanie dotyczące tych linijek:

int *tablica;
tablica=new int [ile];

Te linijki deklarują nową tablice, ale nie wiem jaką ta tablica ma nazwe.

komentarz 27 kwietnia 2015 przez Radfler VIP (101,030 p.)

Ta tablica nie ma nazwy. Dostęp do niej uzyskujesz posługując się wskaźnikiem:

tablica[0] = 5; // Pierwszy element
*tablica = 3;   // Też pierwszy element

 

komentarz 27 kwietnia 2015 przez aspoka Mądrala (5,290 p.)

Czyli jeśli zapisze:

tablica++;
*tablica=12;

to podmienie drugi element tablicy na dwanaście?

komentarz 27 kwietnia 2015 przez Radfler VIP (101,030 p.)
Dokładnie! Ale jak dla mnie lepiej jest użyć operatora [] -> uzyskujesz w ten sposób konkretny element :)
komentarz 27 kwietnia 2015 przez aspoka Mądrala (5,290 p.)
Spoko, dzięki :D

Podobne pytania

0 głosów
2 odpowiedzi 1,233 wizyt
pytanie zadane 29 lipca 2021 w C i C++ przez Stasiu Nowicjusz (190 p.)
0 głosów
2 odpowiedzi 1,230 wizyt
pytanie zadane 11 grudnia 2019 w C i C++ przez amtrax Dyskutant (9,630 p.)
0 głosów
1 odpowiedź 446 wizyt

93,772 zapytań

142,730 odpowiedzi

323,382 komentarzy

63,369 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...