01-31-2008
My understanding is this: delete() frees the memory space allocated already. However, if you do not reset the pointer to NULL, it will continue to point to a freed memory block (which may subsequently be allocated for some other uses) and lead to segmentation fault or mysterious behaviour with unexpected value if you happen to access that pointer. To safeguard, reset the pointer to NULL as soon as the memory location is freed.
9 More Discussions You Might Find Interesting
1. Programming
This is one basic question regarding C++ new and delete operator.
# include <iostream>
int main()
{
int *ptr = new int(10);
int i=0;
for (i=0 ; i<10 ;i++)
ptr = 10;
delete ptr;
printf("%d",ptr); // It prints the value 10
}
In the above program memory for the *ptr is... (3 Replies)
Discussion started by: arun.viswanath
3 Replies
2. Shell Programming and Scripting
Hi Friends
I have a file called processLog.txt file
processLog.txt
---------------
echo "line starts "$LINE
suppCode=${LINE:0:3}
#gatewayArchive=`scp root@mrp-gateway:/usr/local/apache/data/PLAT/MIMUS/upload/PROD/archive/112042708173000.txt /home/krishnaveni/scripts/tempFolder`
#echo... (5 Replies)
Discussion started by: kittusri9
5 Replies
3. Shell Programming and Scripting
Hi All,
I have a text file which looks like this:
computer programming
systems engineering
I want to get rid of these square brackets and also the text that is inside these brackets. So that my final text file looks like this:
computer programming
systems engineering
I am using... (3 Replies)
Discussion started by: shoaibjameel123
3 Replies
4. Red Hat
ENVIROMENT
Linux: Fedora Core release 1 (Yarrow)
iPlanet: iPlanet-WebServer-Enterprise/6.0SP1
Log Path: /usr/iplanet/servers/https-company/logs
I have iPlanet log rotation enabled rotating files on a daily basis.
The rotated logs are NOT compressed & are taking up too much space.
I... (7 Replies)
Discussion started by: zachs
7 Replies
5. Shell Programming and Scripting
Hi
My directory structure is as below.
dir1, dir2, dir3
I have the list of files to be deleted in the below path as below.
/staging/retain_for_2years/Cleanup/log $ ls -lrt
total 0
drwxr-xr-x 2 nobody nobody 256 Mar 01 16:15 01-MAR-2015_SPDBS2
drwxr-xr-x 2 root ... (2 Replies)
Discussion started by: prasadn
2 Replies
6. Shell Programming and Scripting
Hi All,
Do you have any sample script,
- auto get file from SFTP remote server and delete file in remove server after downloaded.
- only download specify filename
- auto upload file from local to SFTP remote server and delete local folder file after uploaded
- only upload specify filename
... (3 Replies)
Discussion started by: weesiong
3 Replies
7. Linux
Dear All,
I got the valgrind report as below
Mismatch free() / delete / delete
at 0x4006895: operator delete(void*) (vg_replace_malloc.c:480)
by 0x8EA6D11: corefunction.
I supect that it is expect me to write free() instead of delete p1.
Given the the code.
I have the structure.
... (7 Replies)
Discussion started by: SA_Palani
7 Replies
8. Programming
Could you tell me the possibilities of the reason to get the Mismatched free() / delete / delete .
I unable to see the line no in the valgrind report. it displays the function name. with that function name, I am not able to find where exactly the issue is there.I am getting the Mismatched free()... (3 Replies)
Discussion started by: SA_Palani
3 Replies
9. UNIX for Advanced & Expert Users
rsync with --delete won't honor the delete if the source is something/*. I want the delete to work, but not to delete directories on the target that are peer to the intended directory. For example, using these source and target file structures:
Source on desktop:
~/
Money/
... (4 Replies)
Discussion started by: JavaMeister
4 Replies
LEARN ABOUT HPUX
xtrealloc
XtRealloc() XtRealloc()
Name
XtRealloc - change the size of an allocated block of storage.
Synopsis
char *XtRealloc(ptr, num);
char *ptr;
Cardinal num;
Inputs
ptr Specifies a pointer to memory allocated with XtMalloc(), XtCalloc(), or XtRealloc(), or NULL.
num Specifies the new number of bytes of memory desired in the block.
Returns
A pointer to allocated memory.
Description
XtRealloc() changes the size of the block of allocated memory pointed to by ptr to be at least num bytes large. In order to make this size
change, it may have to allocate a new block of memory and copy the contents of the old block (or as much as will fit) into the new block.
If it allocates a new block of memory, it frees the old block. In either case, it returns a pointer to a block of memory which is of the
requested size. If there is insufficient memory to allocate the new block, XtRealloc() terminates by calling XtErrorMsg().
If ptr is NULL, XtRealloc() simply calls XtMalloc() to allocate a block of memory of the requested size.
Usage
Note that XtRealloc() may move the contents of your allocated memory to a new location; the return value may or may not be the same as ptr.
Not all memory can be safely reallocated. If there are multiple pointers to a block of memory scattered through out an application (such
as pointers to a widget record), then reallocating that memory is not safe, because all pointers to it cannot be updated. Other memory
(such as the array of children maintained privately by the Composite widget class) can be safely updated because there should be only one
pointer to it in the application (in this case the pointer is the composite.children field of the widget). These cautions are no different
than those required with the standard realloc() function.
In most cases, you will have to cast the return value of XtRealloc() to an appropriate pointer type.
Note that because XtRealloc() behaves like XtMalloc() when passed a NULL pointer, (something that realloc() does not do), you don't have to
write special case code to allocate the first chunk of memory with XtMalloc() and subsequent chunks with XtRealloc(); you can simply use
XtRealloc() everywhere.
Memory allocated with XtRealloc() must be deallocated with XtFree(). The function XtRealloc() is implemented by the Toolkit independently
of the particular environment, so programs ported to a system not supporting malloc will still work.
See Also
XtCalloc(1), XtFree(1), XtMalloc(1), XtNew(1), XtNewString(1).
Xt - Memory Allocation XtRealloc()