diff options
author | Tobias Klauser <tklauser@distanz.ch> | 2008-01-27 11:37:44 +0100 |
---|---|---|
committer | Tobias Klauser <tklauser@xenon.tklauser.home> | 2008-01-27 11:37:44 +0100 |
commit | 7e0f021a9aec35fd8e6725e87e3313b101d26f5e (patch) | |
tree | b1cacc4b24393f517aeb4610e9e1021f954307a8 /reference/CPLUSPLUS/SYNTAX/new.html |
Initial import (2.0.2-6)2.0.2-6
Diffstat (limited to 'reference/CPLUSPLUS/SYNTAX/new.html')
-rw-r--r-- | reference/CPLUSPLUS/SYNTAX/new.html | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/reference/CPLUSPLUS/SYNTAX/new.html b/reference/CPLUSPLUS/SYNTAX/new.html new file mode 100644 index 0000000..bd077fd --- /dev/null +++ b/reference/CPLUSPLUS/SYNTAX/new.html @@ -0,0 +1,125 @@ +<title>NEW operator</title> +<!-- Changed by: Martin Leslie, 14-Mar-1996 --> +<body bgcolor="#dddddd"> +<font color=brown> +<hr> +<center><h1>NEW operator.</h1></center> +<hr> +<p> +The <b>new</b> operator replaces the +<a href="../../C/FUNCTIONS/malloc.html">malloc</a> +function provided in C to reserve storage taken from the heap. +<p> +The <b>new</b> operator requires one operand that describes the +type of data to be stored in the memory. Here are some examples. +<p> +<center> +<table bgcolor=ivory width="80%" border=1> +<tr> +<td> +<pre> + + int *ptr1; // Declare a pointer to int. + ptr1 = new int; // Reserve storage and point to it. + + float *ptr2 = new float; // Do it all in one statement. + + delete ptr1; // Free the storage. + delete ptr2; + + struct House // Declare a complex structure. + { + int Floors; + int Windows; + }; + + House *ptr3 = new House; // Reserve storage and point to it. + + delete ptr3; +</pre> +</td> +</tr> +</table> +</center> +<p> + +Blocks or arrays of storage can also be reserved as show in the +next example. + +<p> +<center> +<table bgcolor=ivory width="80%" border=1> +<tr> +<td> +<pre> + + char *ptr + ptr = new char[80]; + + delete [] ptr; // Free the storage. +</pre> +</td> +</tr> +</table> +</center> +<p> + + + +Although <b>new</b> and +<a href="../../C/FUNCTIONS/malloc.html">malloc</a> +can be intermixed in the same code, it is probably best +to continue using +<a href="../../C/FUNCTIONS/malloc.html">malloc</a> +in existing code and <b>new</b> in new code. This is because +you can not use +<a href="delete.html">delete</a> with storage thats been +reserved with malloc and visa versa. If you keep to one +method or the other you are less likely to make a mistake. +<p> +<hr> +<h2>Examples:</h2> +<img src="../../GRAPHICS/computer.gif"> +<a href="../EXAMPLES/new.cc">Example program.</a> +<hr> +<h2>See Also:</h2> +<img src="../../GRAPHICS/whiteball.gif"> +<a href="delete.html">delete</a> keyword. + +</font> +<hr> +<font color=black> +<h2>C References</h2> +<p> +<img src="../../GRAPHICS/whiteball.gif"> +<a href="../../C/FUNCTIONS/malloc.html">malloc</a> function. + +<p> +<img src="../../GRAPHICS/whiteball.gif"> +<a href="../../C/FUNCTIONS/free.html">free</a> function. +</font> + +<hr> +<p> +<center> +<table border=2 width="80%" bgcolor="ivory"> +<tr align=center> +<td width="25%"> +<a href="../cref.html">Top</a> +</td><td width="25%"> +<a href="../../C/master_index.html">Master Index</a> +</td><td width="25%"> +<a href="keywords.html">C++ Keywords</a> +</td><td width="25%"> +<a href="../../C/FUNCTIONS/funcref.htm">Functions</a> +</td> +</tr> +</table> +</center> +<p> +<hr> +<font color=brown> +<address>Martin Leslie +17-Feb-96</address><p> +</font> + |