Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c++ > #13346
| From | "Paul" <pchrist<nospam>or@yahoo.co.uk> |
|---|---|
| Newsgroups | comp.lang.c++ |
| Subject | Re: How to free this memory? |
| Date | 2012-01-13 18:07 +0000 |
| Organization | Netfront http://www.netfront.net/ |
| Message-ID | <jepru7$1887$1@adenine.netfront.net> (permalink) |
| References | <CB35C06F.B997%bint@ign.com> <jepq5f$bvj$1@dont-email.me> |
"Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> wrote in message
news:jepq5f$bvj$1@dont-email.me...
> On 13.01.2012 18:05, Bint wrote:
>> Hello, I am allocating some vertices to pass to a function, and then I
>> want
>> to free the memory. How do I do this? The compiler is giving me
>> warnings
>> when I do it this way:
>>
>> trivertex **vertices;
>>
>> vertices = new trivertex*[2];
>>
>> vertices[0] = new trivertex[100];
>> vertices[1] = new trivertex[50];
>>
>> .
>> .
>> .
>> delete vertices[0];
>> delete vertices[1];
>> delete vertices;
>>
>> I get this warning:
>> " 'delete' applied to a pointer-to-array type 'trivertex *' (aka 'double
>> (*)[3]') treated as delete"
>
> When you allocate with `new[]`, you should/must delete with `delete[]`.
>
> But you should not do use raw arrays and raw new.
>
> Use standard library containers such as `std::vector`.
>
>
> <code>
> #include <iostream>
> #include <vector>
>
> int main()
> {
> using namespace std;
>
> struct TriVertex { double x, y, z; };
> typedef vector<TriVertex> VertexVector;
> typedef vector<VertexVector> VertexVectorVector;
>
> VertexVectorVector vertices( 2 );
> vertices[0].resize( 100 );
> vertices[1].resize( 50 );
> }
> </code>
>
>
Hi Alf
Thanks for the extra tips.
As an additional discussion point , how would you pass, for example, a
pointer to a vertex as a function argument when using the vector method?
For example:
void example_function(trivertex* arg){};
example_function( vertices[0] ); /*No this won't convert to a pointer*/
I always feel I am entering dangerous territory when I start thinking about
pointers to vector elements.
I am thinking of an iterator or something but I wonder if any iterator type
will convert to a pointer, or perhaps using addressof operator &. How would
you extract a pointer from the vector?
--- Posted via news://freenews.netfront.net/ - Complaints to news@netfront.net ---
Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
How to free this memory? Bint <bint@ign.com> - 2012-01-13 11:05 -0600
Re: How to free this memory? "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> - 2012-01-13 18:37 +0100
Re: How to free this memory? "Paul" <pchrist<nospam>or@yahoo.co.uk> - 2012-01-13 18:07 +0000
Re: How to free this memory? "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> - 2012-01-13 19:38 +0100
Re: How to free this memory? "Paul" <pchrist<nospam>or@yahoo.co.uk> - 2012-01-13 20:35 +0000
Re: How to free this memory? Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-01-14 02:16 -0800
Re: How to free this memory? Kevin McCarty <kmccarty@gmail.com> - 2012-01-16 09:08 -0800
Re: How to free this memory? Kevin McCarty <kmccarty@gmail.com> - 2012-01-13 10:48 -0800
Re: How to free this memory? Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-01-14 02:19 -0800
Re: How to free this memory? Kevin McCarty <kmccarty@gmail.com> - 2012-01-16 08:56 -0800
Re: How to free this memory? Leigh Johnston <leigh@i42.co.uk> - 2012-01-13 18:16 +0000
Re: How to free this memory? "Paul" <pchrist<nospam>or@yahoo.co.uk> - 2012-01-13 17:37 +0000
Re: How to free this memory? Leigh Johnston <leigh@i42.co.uk> - 2012-01-13 17:47 +0000
Re: How to free this memory? Bint <bint@ign.com> - 2012-01-13 12:04 -0600
Re: How to free this memory? Leigh Johnston <leigh@i42.co.uk> - 2012-01-13 18:10 +0000
Re: How to free this memory? "Paul" <pchrist<nospam>or@yahoo.co.uk> - 2012-01-13 19:20 +0000
Re: How to free this memory? Leigh Johnston <leigh@i42.co.uk> - 2012-01-13 19:27 +0000
Re: How to free this memory? "Paul" <pchrist<nospam>or@yahoo.co.uk> - 2012-01-13 19:52 +0000
Re: How to free this memory? Leigh Johnston <leigh@i42.co.uk> - 2012-01-13 20:33 +0000
Re: How to free this memory? "Paul" <pchrist<nospam>or@yahoo.co.uk> - 2012-01-13 20:52 +0000
Re: How to free this memory? David Dyer-Bennet <dd-b@dd-b.net> - 2012-01-13 15:01 -0600
Re: How to free this memory? BCFD36 <bcfd36@cruzio.com> - 2012-01-14 02:01 -0800
Re: How to free this memory? "MikeWhy" <boat042-nospam@yahoo.com> - 2012-01-13 15:46 -0600
Re: How to free this memory? Leigh Johnston <leigh@i42.co.uk> - 2012-01-13 21:59 +0000
Re: How to free this memory? Goran <goran.pusic@gmail.com> - 2012-01-13 22:12 -0800
Re: How to free this memory? Leigh Johnston <leigh@i42.co.uk> - 2012-01-14 11:58 +0000
Re: How to free this memory? Goran <goran.pusic@gmail.com> - 2012-01-13 22:01 -0800
Re: How to free this memory? Victor Bazarov <v.bazarov@comcast.invalid> - 2012-01-13 13:48 -0500
Re: How to free this memory? Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-01-14 20:46 +0000
Re: How to free this memory? Bint <bint@ign.com> - 2012-01-13 11:54 -0600
Re: How to free this memory? Travis Vitek <travis.vitek@gmail.com> - 2012-01-13 09:21 -0800
Re: How to free this memory? jgk@panix.com (Joe keane) - 2012-01-14 01:03 +0000
csiph-web