Właśnie w wieku 60++ rozpocząłem kurs programowania w C++
Pracuję na laptopie Dell Precision M4800 (Windows 10Home wersja 10.0.19041, CodeBloks-20.03mingw )
Przerabiając temat o wskaźnikach natrafiłem na problemy które mnie przerastają i potrzebuję pomocy, HELP!!!
Problem 1.
Nie działa u mnie rzutowanie zmiennej typu HEX na typ int - program się nie uruchamia a CodeBloks wyrzuca komunikat; " error: cast from ‘int*’ to ‘int’ loses precision {- fpermissive] "
Ten sam program bez rzutowania zmiennej HEX na typ int uruchamia się ale długo, a kompilator zamiast zwrócić returned (0) wyrzuca bardzo dużą liczbę
Do tej pory nie zauważyłem takich anomalii w działaniu programów z poszczególnych lekcji kursu uruchamianych na moim laptopie.
Odinstalowałem i ponownie zainstalowałem CodeBloks’a ale to nie pomogło - podejrzewam jakiś problem z Windowsem
Problem 2
W załączonym programie ćwiczebnym chcę wrócić wskaźnikiem na komórkę zerową tablicy Zastosowałem rozwiązanie nieprofesjonalne (tablica=tablica-ile;) Jak to zrobić fachowo aby działało skutecznie bez względu w którym miejscu tablicy aktualnie się znajduję?
Problem 3
W tym samym programie po wyjściu z pętli for wskaźnik jest poza tablicą ??? Czy to jest normalne? Gdzie tkwi błąd?
Będę wdzięczny jeśli ktoś zechce mi pomóc:slight_smile:
#include
#include
#include <conio.h>
using namespace std;
int ile;
int main()
{
cout << "Ile liczb w tablicy: ";
cin>>ile;
int*tablica;
tablica=new int[ile];
cout<<"Podaj kolejno liczby do tablicy: "<<endl;
for(int i=0; i<ile; i++)
{
cout<<"Liczba nr “<<i+1<<” ";
cin>>tablica[i];
cout<<endl;
// cout<< (int)tablica <<endl;
}
cout<<endl;
for(int i=0; i<ile; i++)
{
cout<<tablica<<" "<<*tablica<<endl;
tablica++;
}
cout<<endl<<tablica<<endl;
tablica=tablica-ile;
cout<<endl<<tablica<<endl;
delete [] tablica;
return 0;
}
created
last reply
- 2
replies
- 662
views
- 3
users
- 3
likes
- 3
links