C++ = new and delete


 
Thread Tools Search this Thread
Top Forums Programming C++ = new and delete
# 1  
Old 09-01-2005
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[i] = 10;

delete [] ptr;
printf("%d",ptr[5]); // It prints the value 10

}

In the above program memory for the *ptr is created using new operator and the same memory is deleted using the delete. But after deleting the ptr also I can able to access the memory location using the ptr .
So any one please explain me what new() and delete() actually does.
# 2  
Old 09-03-2005
It's not working in vc++ compiler

Hi,
the code which you given is not working in VC++ compiler ..it gives run time error.....
sarwan
# 3  
Old 09-05-2005
MySQL

Quote:
Originally Posted by arun.viswanath
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[i] = 10;

delete [] ptr;
printf("%d",ptr[5]); // It prints the value 10

}

In the above program memory for the *ptr is created using new operator and the same memory is deleted using the delete. But after deleting the ptr also I can able to access the memory location using the ptr .
So any one please explain me what new() and delete() actually does.


Dear,
Try this code which is the correct way to create a array.

Code:
# include <iostream>
int main()
{
int *ptr = new int[10];
int i=0;
for (i=0 ; i<10 ;i++)
  ptr[i] = i;


delete ptr;
printf("%d",ptr[5]);  // It prints the value 10

}

for a detailed understanding refer a good manual Smilie

rishi
# 4  
Old 09-13-2005
Quote:
Originally Posted by arun.viswanath
In the above program memory for the *ptr is created using new operator and the same memory is deleted using the delete. But after deleting the ptr also I can able to access the memory location using the ptr. So any one please explain me what new() and delete() actually does.
There's an error in that program, which someone else has already pointed out.

The reason you're able to use that memory after deleting it, is because it still exists. To oversimplify a bit, the new operator doesn't create new memory, the memory already exists; the new operator is there to arbitrate who gets what piece of memory. So when you free the memory, it still exists, but now the new operator "knows" it's allowed to give it to someone else.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

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. 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

7. UNIX for Dummies Questions & Answers

Help with delete

Lets say, I have a few records EX: 10 20 account 10 20 account_K I need to eliminate whtever records with _K Please help.. Thanks (2 Replies)
Discussion started by: saggiboy10
2 Replies

8. 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

9. 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
Login or Register to Ask a Question