Dynamiczne alokowanie pamieci wskaznikami
Ostatnio zmodyfikowano 2016-04-24 10:38
koniol Temat założony przez niniejszego użytkownika |
Dynamiczne alokowanie pamieci wskaznikami » 2016-04-23 15:26:30 Witam jako że to mój pierwszy post to chciałbym się przywitać z wszystkimi. Dopiero zaczynam przygode z C++ i mam ot taki błąd munmap_chunk(): invalid pointer co robie nie tak #include <cstdlib> #include <iostream> #include <string>
using namespace std;
int main( int argc, char ** argv ) { int * tablica; int ile = 9; tablica = new int[ ile ]; for( int i = 0; i < ile; i++ ) { * tablica += i; tablica++; cout << * tablica; } delete[] tablica; return 0; }
|
|
BadBullPL |
» 2016-04-23 15:37:59 delete musi otrzymać to co zwróciło new , a nie przesunięty o ileś tam wskaźnik. Utwórz dodatkowy wskaźnik, który będzie wskazywał na tablice i go inkrementuj albo używaj operatora [] |
|
carlosmay |
» 2016-04-24 10:38:14 tablica = tablica - ile; delete[] tablica; Przykład do analizy: { int ile; std::cin >> ile; int * ptab = new int[ ile ] { }; for( int i = 0; i < ile; ++i ) { *( ptab + i ) = i + 1; } for( int i = 0; i < ile; ++i ) { std::cout << *( ptab + i ) << std::endl; } for( int i = 0; i < ile; ++i ) { std::cout << *( ptab++ ) << std::endl; } ptab = ptab - ile; for( int i = 0; i < ile; ++i ) { std::cout << ptab[ i ] << std::endl; } delete[] ptab; } |
|
« 1 » |