Nowe posty

Autor Wątek: C++ i ochrona pamieci  (Przeczytany 5832 razy)

Offline Tomek abdul Jabar

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 2
    • Zobacz profil
C++ i ochrona pamieci
« dnia: 2005-06-12, 22:35:10 »
Witam. jestem totalnym newbie :) mam takie pytanie, czy istnieje jakaś dystrybucja Linuksa z domyślnym lub nie domyślnym wbudowanym środowiskiem graficznym XPde?
Zgóry dzięki za odpowiedz!

Offline Konrad Zapałowicz

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 160
    • Zobacz profil
C++ i ochrona pamieci
« Odpowiedź #1 dnia: 2005-06-13, 07:03:25 »
Skoro najbardziej aktualna wersja Xpde to beta, a dystrybucje zazwyczaj są przygotowywane z pakietów \\"stable\\" to strzelałbym, że takowej nie ma. Ale nic nie stoi na przeszkodzie byś sobie nie mógł instalnąć ze źródełek.

Pozdrawiam,
Bergo

Offline Konrad Zapałowicz

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 160
    • Zobacz profil
C++ i ochrona pamieci
« Odpowiedź #2 dnia: 2005-06-13, 07:05:59 »
Ściągasz źródełka i robisz to:
General installation instructions:
 -Decompress the tar.gz in /usr/share as root
 -Edit the .xinitrc file of the user you want to run XPde and put this line:
 /usr/share/xpde/bin/startxpde
 -Start X


Offline Paweł Kobyliński

  • Users
  • Użytkownik
  • **
  • Wiadomości: 50
    • Zobacz profil
C++ i ochrona pamieci
« Odpowiedź #3 dnia: 2005-06-12, 21:23:20 »
Pisze juz w C++ od pewnego czasu ale cos takiego zdarzylo mi sie po raz pierwszy, mianowicie wszystko sie ladnie skompilowalo bez zadnych problemow ale gdy wloncze program, wpisze jakas cyfre ( program matematyczny) i nacisne Enter wyskakuje mi, "Naruszenie ochrony pamięci ", nie wiem co z tym zrobic ,moze kto moglby mi pomoc ?? Dziekuje z gory .

Kobcio

Offline Marcin Maćczak

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 235
    • Zobacz profil
C++ i ochrona pamieci
« Odpowiedź #4 dnia: 2005-06-12, 21:44:59 »
standardowy blad pod linuxem jak sie pisze programy :]
nikt Ci  nie pomoze dopoki nie pokazesz kodu programu
i sproboj skompilowac z opcja -Wall moze poda jakies warningi a jak nie to trza szukac recznie w kodzie :]

pozdrawiam
Maciasz

Offline Paweł Kobyliński

  • Users
  • Użytkownik
  • **
  • Wiadomości: 50
    • Zobacz profil
C++ i ochrona pamieci
« Odpowiedź #5 dnia: 2005-06-12, 21:51:52 »
Wiecie strasznie siem wyglupilem, bo juz to rozwiazalem i niepotrzebny byl ten post, ale jak juz zaczalem to skoncze,
kod programu jest taki :

#include
#include
#include
using namespace std;

main()
{
int l = 0 ;
int a = 0 ;
int p[20] ;
cout << "Podaj liczbę do przekształcenia : n";
cin >> l;
if (l == 0)
 {cout << "Wynik = 0 n";}
else if (l == 1)
 {cout << "Wynik = 1 n";}
 else {
do {
 if ((l-(l/2)*2) == 0) {
  {p[a] = 0;
   ++a;
   l = l/2;}
  }
 if ((l-(l/2)*2) > 0) {
  {p[a] = 1;
   ++a;
   l = l/2;}
 }
}
while (l >= 2);
p[a] = 1;
cout << "Wynik = ";
do {
cout << p[a];
 --a;
 }
while(a >= 0);
cout << "n";
 }
}
 wczesniej zamiast cin i cout uzywalem printf i scanf i chyba to bylo zrodlem problemu bo jak wszystko zamienilem i dodalem " using namespace std" ( swoja droga to co to jest bo dodalem to na wyczucie ) to wszystko zaczelo pasowac. A sam program sluzy do zamiany liczb z dziesiatnych na binarne.

Kobcio

Offline Konrad Zapałowicz

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 160
    • Zobacz profil
C++ i ochrona pamieci
« Odpowiedź #6 dnia: 2005-06-13, 06:44:48 »
>  wczesniej zamiast cin i cout uzywalem printf i scanf i chyba to bylo zrodlem problemu bo jak
 
Pamiętaj, że scanf trzeba przekazać adres zmiennej pod który ma podstawiać wczytaną wartość.
Jak masz:
int a
To podstawiasz do scanf:
&a

Jak podstawisz samo a bez referencji to dostaniesz naruszenie ochrony pamięci.

Pozdrawiam,
Bergo