08-13-2007
If you buy a car, can you you then sell it twice? No, because the 2nd time you no longer own it.
This is the same with memory, you allocate it, then release it. Once you have released the memory goes back into the free pool ready to be given out again.
If you release the pointer twice, then that memory may have been allocated between those two deletes to somebody else. You have then just freed some memory that another part of the code was trying to use.
In the words of the Fat Controller, you will cause chaos and confusion.
10 More Discussions You Might Find Interesting
1. Programming
I have a class with an integer pointer, which I have not initialized to NULL in the constructor. For example:
class myclass
{
private:
char * name;
int *site;
}
myclass:: myclass(....)
: name(NULL)
{
.....
}
other member function “delete “ the variable before... (2 Replies)
Discussion started by: sureshreddi_ps
2 Replies
2. Programming
void main()
{
int a={1,2,3,4,5,6,7,8,9,10};
int *p=a;
int *q=&a;
cout<<q-p+1<<endl;
}
The output is 10, how?
if we give cout<<q it will print the address, value won't print....
if we give cout<<p it will print the address, value won't print....
p has the base addr; q... (1 Reply)
Discussion started by: sarwan
1 Replies
3. Programming
Hi,
char *s="yamaha";
cout<<s<<endl;
int *p;
int i=10;
p=&i;
cout<<p<<endl;
1) For the 1st "cout" we will get "yamaha" as output. That is we are getting "content of the address" for cout<<s.
2) But for integer "cout<<p" we are getting the "address only".
Please clarify how we are... (2 Replies)
Discussion started by: sweta
2 Replies
4. Programming
Hi i'm new to c programming and i'm trying to change the address of a pointer/variable but i can't seem to get it right,
I have this
char heap;
char *firstFree = heap;
char *allocMem( int size ) {
void *malloc(size_t sizeofint);
/*allocate space for an array with size... (19 Replies)
Discussion started by: Poison Ivy
19 Replies
5. Programming
what is far pointer in C (1 Reply)
Discussion started by: useless79
1 Replies
6. Programming
If one wants to get a start address of a array or a string or a block of memory via a function, there are at least two methods to achieve it:
(1) one is to pass a pointer-to-pointer parameter, like:
int my_malloc(int size, char **pmem)
{
*pmem=(char *)malloc(size);
if(*pmem==NULL)... (11 Replies)
Discussion started by: aaronwong
11 Replies
7. Programming
Can anyone tell me what the following statements do?
float (*tab);
tab=(float (*)) calloc(MAXCLASS,
(MAXCLASS+1)*sizeof(float)); (3 Replies)
Discussion started by: littleboyblu
3 Replies
8. Programming
Hi,
Can anyone tell me how i can declare and allocate dynamically an array of pointers to structured type?? Is declaration something like this:?
struct_name ** array; (1 Reply)
Discussion started by: littleboyblu
1 Replies
9. Programming
hi there fellos
could someone teach me how to convert a character pointer into an integer using c
much love (1 Reply)
Discussion started by: surubi_abada
1 Replies
10. Programming
I am struggling with the pointer to 2D-array (cf: 2D array of pointers). Can anybody help me elaborate how the pointer x moves in the memory to access the individual of y, especially the high lighted lines?
I have talked to one of the curators of the forum, but I am still not quite clear.
Here... (1 Reply)
Discussion started by: yifangt
1 Replies
delete(n) [incr Tcl] delete(n)
__________________________________________________________________________________________________________________________________________________
NAME
delete - delete things in the interpreter
SYNOPSIS
itcl::delete option ?arg arg ...?
_________________________________________________________________
DESCRIPTION
The delete command is used to delete things in the interpreter. It is implemented as an ensemble, so extensions can add their own options
and extend the behavior of this command. By default, the delete command handles the destruction of namespaces.
The option argument determines what action is carried out by the command. The legal options (which may be abbreviated) are:
delete class name ?name...?
Deletes one or more [incr Tcl] classes called name. This deletes all objects in the class, and all derived classes as well.
If an error is encountered while destructing an object, it will prevent the destruction of the class and any remaining objects. To
destroy the entire class without regard for errors, use the "delete namespace" command.
delete object name ?name...?
Deletes one or more [incr Tcl] objects called name. An object is deleted by invoking all destructors in its class hierarchy, in
order from most- to least-specific. If all destructors are successful, data associated with the object is deleted and the name is
removed as a command from the interpreter.
If the access command for an object resides in another namespace, then its qualified name can be used:
itcl::delete object foo::bar::x
If an error is encountered while destructing an object, the delete command is aborted and the object remains alive. To destroy an object
without regard for errors, use the "rename" command to destroy the object access command.
delete namespace name ?name...?
Deletes one or more namespaces called name. This deletes all commands and variables in the namespace, and deletes all child names-
paces as well. When a namespace is deleted, it is automatically removed from the import lists of all other namespaces.
KEYWORDS
namespace, proc, variable, ensemble
itcl 3.0 delete(n)