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

Dynamiczna alokacja pamięci w klasie

Object Storage Arubacloud
0 głosów
748 wizyt
pytanie zadane 3 maja 2016 w C i C++ przez sebask08 Użytkownik (510 p.)
edycja 3 maja 2016 przez Patrycjerz

Witam,

Program sie kompiluje ale w momencie wyskoczenie okna konsoli sie crashuje. Prosze o pomoc.

 

// Dziedzidżenie_1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <iostream>

using namespace std;

class Macierz
{
private:
    int w;
    int k;
    double **tablica;
    double value;
    
public:

    Macierz(int Nw, int Nk);
    int Wiersze(){return w;};
    int Kolumny(){return k;};

    void Wyswietl();
};

Macierz::Macierz(int Nw, int Nk)
    : w(Nw),
      k(Nk)
{

    if(w<1||w>100||k<1||k>100){exit(0);};

    double **tablica=new double*[w];
    for(int i=0; i<w; i++)
    {
        tablica[i]=new double[k];
    }

    for(int i=1; i<w; i++)
    {
        for(int j=1; j<k; j++)
        {
            tablica[i][j] = 0;
        }
    }
    
}

void Macierz::Wyswietl()
{
    for(int i=1; i<w; i++)
    {
        for(int j=1; j<k; j++)
        {
            cout<<tablica[i][j]<<endl;
        }
    }
}
int _tmain(int argc, _TCHAR* argv[])
{
    Macierz v1(10, 10);
    v1.Wyswietl();

    _getch();
    return 0;
}

 

2 odpowiedzi

+1 głos
odpowiedź 3 maja 2016 przez Grzyboo Nałogowiec (28,860 p.)
wybrane 3 maja 2016 przez sebask08
 
Najlepsza

W konstruktorze tworzysz nową tablicę, a potem wyświetlasz niezainicjowaną.

Zamiast:

double **tablica=new double*[w];

spróbuj:

tablica=new double*[w];

 

komentarz 3 maja 2016 przez sebask08 Użytkownik (510 p.)
Dzięki wielkie :D
0 głosów
odpowiedź 3 maja 2016 przez niezalogowany
double **tablica=new double*[w];

 

Tworzysz nowy wskaźnik. Zostaw tylko:

tablica=new double*[w];

Gdy chcesz przerwać działanie konstruktora to nie używaj exit tylko rzucaj wyjątek, łap go w main i wtedy wychodź.

Podobne pytania

0 głosów
1 odpowiedź 358 wizyt
pytanie zadane 27 września 2016 w C i C++ przez Avernis Nałogowiec (27,400 p.)
0 głosów
2 odpowiedzi 184 wizyt
0 głosów
4 odpowiedzi 1,254 wizyt
pytanie zadane 13 kwietnia 2016 w C i C++ przez veryhotshark Obywatel (1,620 p.)

92,578 zapytań

141,427 odpowiedzi

319,653 komentarzy

61,961 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...