Sponsored Content
Full Discussion: delete in c++
Top Forums Programming delete in c++ Post 302163492 by neutrino4 on Friday 1st of February 2008 06:07:00 AM
Old 02-01-2008
I guess it is used for safeguarding from re-deleting some pointer that was already deleted in the past and for knowing which pointer references real object and which one is not. For example if you have some kind of a pool (array of pointers) of objects of some type that you manage manually (allocating new objects, deallocating old ones), you have to know, whether some particular pointer in the pool is actually valid. So when you deallocate an object from the pool, you set its pointer to NULL and then you know that this pointer may be used again in the future. In case of freeing the whole pool you have to delete only those pointers that are not NULL.

On my system (Ubuntu Linux 6.06) there is no difference in referencing NULLed and invalid pointer, I get segmentation fault in both cases.
 

9 More Discussions You Might Find Interesting

1. Programming

C++ = new and delete

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

how to delete content in a file (delete content only)

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

Delete text between square brackets and also delete those square brackets using sed or awk

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

Need Script to ZIP/SAVE & then DELETE Log file & DELETE ZIPS older than 12 months

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

Script needed to delete to the list of files in a directory based on last created & delete them

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

SFTP Shell Script Get & Delete && Upload & Delete

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

Mismatch free() / delete / delete [C++]

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

Mismatched free() / delete / delete [] line no missing

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 but do not delete peer dirs on target

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
MTX_POOL(9)						   BSD Kernel Developer's Manual					       MTX_POOL(9)

NAME
mtx_pool, mtx_pool_alloc, mtx_pool_find, mtx_pool_lock, mtx_pool_lock_spin, mtx_pool_unlock, mtx_pool_unlock_spin, mtx_pool_create, mtx_pool_destroy -- mutex pool routines SYNOPSIS
#include <sys/param.h> #include <sys/lock.h> #include <sys/mutex.h> struct mtx * mtx_pool_alloc(struct mtx_pool *pool); struct mtx * mtx_pool_find(struct mtx_pool *pool, void *ptr); void mtx_pool_lock(struct mtx_pool *pool, void *ptr); void mtx_pool_lock_spin(struct mtx_pool *pool, void *ptr); void mtx_pool_unlock(struct mtx_pool *pool, void *ptr); void mtx_pool_unlock_spin(struct mtx_pool *pool, void *ptr); struct mtx_pool * mtx_pool_create(const char *mtx_name, int pool_size, int opts); void mtx_pool_destroy(struct mtx_pool **poolp); DESCRIPTION
Mutex pools are designed to be used as short term leaf mutexes; i.e., the last mutex one might acquire before calling mtx_sleep(9). They operate using a shared pool of mutexes. A mutex may be chosen from the pool based on a supplied pointer, which may or may not point to any- thing valid, or the caller may allocate an arbitrary shared mutex from the pool and save the returned mutex pointer for later use. The shared mutexes in the mtxpool_sleep mutex pool, which is created by default, are standard, non-recursive, blockable mutexes, and should only be used in appropriate situations. The mutexes in the mtxpool_lockbuilder mutex pool are similar, except that they are initialized with the MTX_NOWITNESS flag so that they may be used to build higher-level locks. Other mutex pools may be created that contain mutexes with dif- ferent properties, such as spin mutexes. The caller can lock and unlock mutexes returned by the pool routines, but since the mutexes are shared, the caller should not attempt to destroy them or modify their characteristics. While pool mutexes are normally leaf mutexes (meaning that one cannot depend on any ordering guarantees after obtaining one), one can still obtain other mutexes under carefully controlled circumstances. Specifically, if one has a private mutex (one that was allocated and initialized by the caller), one can obtain it after obtaining a pool mutex if ordering issues are carefully accounted for. In these cases the private mutex winds up being the true leaf mutex. Pool mutexes have the following advantages: 1. No structural overhead; i.e., they can be associated with a structure without adding bloat to it. 2. Mutexes can be obtained for invalid pointers, which is useful when one uses mutexes to interlock destructor operations. 3. No initialization or destruction overhead. 4. Can be used with mtx_sleep(9). And the following disadvantages: 1. Should generally only be used as leaf mutexes. 2. Pool/pool dependency ordering cannot be guaranteed. 3. Possible L1 cache mastership contention between CPUs. mtx_pool_alloc() obtains a shared mutex from the specified pool. This routine uses a simple rover to choose one of the shared mutexes man- aged by the mtx_pool subsystem. mtx_pool_find() returns the shared mutex associated with the specified address. This routine will create a hash out of the pointer passed into it and will choose a shared mutex from the specified pool based on that hash. The pointer does not need to point to anything real. mtx_pool_lock(), mtx_pool_lock_spin(), mtx_pool_unlock(), and mtx_pool_unlock_spin() lock and unlock the shared mutex from the specified pool associated with the specified address; they are a combination of mtx_pool_find() and mtx_lock(9), mtx_lock_spin(9), mtx_unlock(9), and mtx_unlock_spin(9), respectively. Since these routines must first find the mutex to operate on, they are not as fast as directly using the mutex pointer returned by a previous invocation of mtx_pool_find() or mtx_pool_alloc(). mtx_pool_create() allocates and initializes a new mutex pool of the specified size. The pool size must be a power of two. The opts argument is passed to mtx_init(9) to set the options for each mutex in the pool. mtx_pool_destroy() calls mtx_destroy(9) on each mutex in the specified pool, deallocates the memory associated with the pool, and assigns NULL to the pool pointer. SEE ALSO
locking(9), mutex(9) HISTORY
These routines first appeared in FreeBSD 5.0. BSD
February 6, 2010 BSD
All times are GMT -4. The time now is 02:20 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy