Article View: pl.comp.objects
Article #5132Re: Czym różni się wróbelek... Czyli rozmiar tablic w C++
From: Marcin 'Qrczak' Kowalczyk
Date: Tue, 09 Mar 1999 19:20
Date: Tue, 09 Mar 1999 19:20
61 lines
2428 bytes
2428 bytes
Tue, 9 Mar 1999, Pszemol pisze:
> Ta druga deklaracja wymaga chyba dodatkowej informacji o ilości
> obiektów w tablicy... Śmierdzi mi tu jakimś dodatkowym intem :-)
Dokładnie tak zwykle jest. To znaczy formalnie nie jest wyspecyfikowane,
skąd kompilator ma wiedzieć, ile zwolnić, ale naturalną metodą jest
dodatkowy int przed tablicą. Na przykład:
[qrczak ~]$ g++ --version
egcs-2.91.60
[qrczak ~]$ cat t.cc
#include <stdlib.h>
#include <iostream.h>
class Trywialna
{
public:
int x;
};
class Nietrywialna
{
public:
int x;
~Nietrywialna() {}
};
main()
{
int *x = (int *) malloc (100 * sizeof (int));
cout << (int) x << "\n";
free (x);
int *y = new int[100];
cout << (int) y << "\n";
delete[] y;
Trywialna *z = new Trywialna[100];
cout << (int) z << "\n";
delete[] z;
Nietrywialna *t = new Nietrywialna[100];
cout << (int) t << " " << ((int *)t)[-1] << "\n";
delete[] t;
return 0;
}
[qrczak ~]$ ./t
134520160
134520160
134520160
134520164 100
Jak widać, dodatkowy licznik jest używany tylko kiedy jest potrzebny.
--
__("< Marcin Kowalczyk * qrczak@knm.org.pl http://kki.net.pl/qrczak/
\__/ GCS/M d- s+:-- a22 C+++>+++$ UL++>++++$ P+++ L++>++++$ E->++
^^ W++ N+++ o? K? w(---) O? M- V? PS-- PE++ Y? PGP->+ t
QRCZAK 5? X- R tv-- b+>++ DI D- G+ e>++++ h! r--%>++ y-
Technical Details
Message-ID:
<Pine.LNX.4.10.9903091859390.459-100000@qrnik.knm.org.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!agh.edu.pl!polsl.gliwice.pl!orion.cst.tpsa.pl!news.tpnet.pl!not-for-mailReferences:
<7c3g46$cud$1@h1.uw.edu.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!agh.edu.pl!polsl.gliwice.pl!orion.cst.tpsa.pl!news.tpnet.pl!not-for-mail From: Marcin 'Qrczak' Kowalczyk <qrczak@knm.org.pl> Newsgroups: pl.comp.lang.c,pl.comp.objects,pl.comp.programming Subject: Re: Czym różni się wróbelek... Czyli rozmiar tablic w C++ Organization: Klub Nieszkodliwych Manjaków Lines: 62 Message-ID: <Pine.LNX.4.10.9903091859390.459-100000@qrnik.knm.org.pl> References: <7c3g46$cud$1@h1.uw.edu.pl> Mime-Version: 1.0 In-Reply-To: <7c3g46$cud$1@h1.uw.edu.pl> Date: Tue, 09 Mar 1999 19:20:28 GMT NNTP-Posting-Host: 212.160.52.150 X-Complaints-To: abuse@tpsa.pl X-Trace: news.tpnet.pl 921007228 212.160.52.150 (Tue, 09 Mar 1999 20:20:28 MET DST) NNTP-Posting-Date: Tue, 09 Mar 1999 20:20:28 MET DST Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit