Sponsored Content
Operating Systems Linux Mismatch free() / delete / delete [C++] Post 302985019 by Corona688 on Thursday 3rd of November 2016 06:03:06 PM
Old 11-03-2016
Quote:
Originally Posted by SA_Palani
You are right that send is to alter the value of Struct p1.
Changing its contents won't cause a crash.

You actually can't typecast things in the way you show in your example, which leaves me more and more curious to what you're actually doing.

That it's passed as a * & gives it the ability to reach in and mangle p1 itself - the pointer.

What I mean is this:

Code:
#include <iostream>
using namespace std;

void mangle_pointer(char * & x) {
        // Set the pointer to a blatantly wrong value
        x = (char *)123456789;
}

int main(void) {
        char *mem=new char;

        cerr << "mem is " << (unsigned long)mem << endl;

        mangle_pointer(mem);

        cerr << "mem is now "<< (unsigned long)mem <<
          " and will crash when deleted" << endl;

        delete mem; // Deleting any value that you didn't get from new is bad
}

This is a trivial example. Tracking down memory crashes is usually a lot harder, the crash is generally a side-effect of an overrun which stomped on the values of your variables or some important hidden values inside the heap itself. An overrun can leap straight through rational boundaries and stomp on whatever happens to be next to it in memory, with no regard for the line order of your program. If the overrun happened to something in a local variable, this can corrupt other local variables, or corrupt your return vector and cause a crash next time you return from any function. If it happened in the heap, it can corrupt other things you have stored in the heap, or corrupt the heap itself, causing delete to mess up in strange ways the next time you delete anything.

This is to say, "delete myvariable" crashing often has nothing to do with "myvariable". Debris can land far away from an explosion.

Last edited by Corona688; 11-03-2016 at 07:12 PM..
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Space free on tape /delete a single file on tape

Hi, I' using a sun solaris server, I would like to known if there is the possibility to control how many space is free on a tape and how I can delete a single file on a tape. Thanks DOMENICO (3 Replies)
Discussion started by: Minguccio75
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

How to delete this?

# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 10.171.5.0 0.0.0.0 255.255.255.0 U 0 0 0 bond0 10.181.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond0 168.354.0.0 ... (1 Reply)
Discussion started by: kenshinhimura
1 Replies

4. Shell Programming and Scripting

AWK "delete" does not free memory?

In my awk script I have a big array, it can occupy up to 10 gigabytes of memory, but after I have deleted the array, the memory is not returned to the system? why's that? how to return the memory to the system? (0 Replies)
Discussion started by: kevintse
0 Replies

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

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

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

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

10. 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
std::ostream_iterator< _Tp, _CharT, _Traits >(3)	     Library Functions Manual		  std::ostream_iterator< _Tp, _CharT, _Traits >(3)

NAME
std::ostream_iterator< _Tp, _CharT, _Traits > - SYNOPSIS
Inherits std::iterator< output_iterator_tag, void, void, void, void >. Public Types typedef void difference_type typedef output_iterator_tag iterator_category typedef void pointer typedef void reference typedef void value_type typedef _CharT char_type typedef _Traits traits_type typedef basic_ostream< _CharT, _Traits > ostream_type" Public Member Functions ostream_iterator (ostream_type &__s) ostream_iterator (ostream_type &__s, const _CharT *__c) ostream_iterator (const ostream_iterator &__obj) ostream_iterator & operator* () ostream_iterator & operator++ () ostream_iterator & operator++ (int) ostream_iterator & operator= (const _Tp &__value) Detailed Description template<typename _Tp, typename _CharT = char, typename _Traits = char_traits<_CharT>>class std::ostream_iterator< _Tp, _CharT, _Traits > Provides output iterator semantics for streams. This class provides an iterator to write to an ostream. The type Tp is the only type written by this iterator and there must be an operator<<(Tp) defined. Template Parameters: _Tp The type to write to the ostream. _CharT The ostream char_type. _Traits The ostream char_traits. Definition at line 154 of file stream_iterator.h. Member Typedef Documentation template<typename _Tp , typename _CharT = char, typename _Traits = char_traits<_CharT>> typedef _CharT std::ostream_iterator< _Tp, _CharT, _Traits >::char_type Public typedef. Definition at line 160 of file stream_iterator.h. typedef void std::iterator< output_iterator_tag , void , void , void , void >::difference_type [inherited] Distance between iterators is represented as this type. Definition at line 125 of file stl_iterator_base_types.h. typedef output_iterator_tag std::iterator< output_iterator_tag , void , void , void , void >::iterator_category [inherited] One of the tag types. Definition at line 121 of file stl_iterator_base_types.h. template<typename _Tp , typename _CharT = char, typename _Traits = char_traits<_CharT>> typedef basic_ostream<_CharT, _Traits> std::ostream_iterator< _Tp, _CharT, _Traits >::ostream_type Public typedef. Definition at line 162 of file stream_iterator.h. typedef void std::iterator< output_iterator_tag , void , void , void , void >::pointer [inherited] This type represents a pointer-to-value_type. Definition at line 127 of file stl_iterator_base_types.h. typedef void std::iterator< output_iterator_tag , void , void , void , void >::reference [inherited] This type represents a reference-to-value_type. Definition at line 129 of file stl_iterator_base_types.h. template<typename _Tp , typename _CharT = char, typename _Traits = char_traits<_CharT>> typedef _Traits std::ostream_iterator< _Tp, _CharT, _Traits >::traits_type Public typedef. Definition at line 161 of file stream_iterator.h. typedef void std::iterator< output_iterator_tag , void , void , void , void >::value_type [inherited] The type 'pointed to' by the iterator. Definition at line 123 of file stl_iterator_base_types.h. Constructor &; Destructor Documentation template<typename _Tp , typename _CharT = char, typename _Traits = char_traits<_CharT>> std::ostream_iterator< _Tp, _CharT, _Traits >::ostream_iterator (ostream_type &__s) [inline] Construct from an ostream. Definition at line 171 of file stream_iterator.h. template<typename _Tp , typename _CharT = char, typename _Traits = char_traits<_CharT>> std::ostream_iterator< _Tp, _CharT, _Traits >::ostream_iterator (ostream_type &__s, const _CharT *__c) [inline] Construct from an ostream. The delimiter string c is written to the stream after every Tp written to the stream. The delimiter is not copied, and thus must not be destroyed while this iterator is in use. Parameters: __s Underlying ostream to write to. __c CharT delimiter string to insert. Definition at line 183 of file stream_iterator.h. template<typename _Tp , typename _CharT = char, typename _Traits = char_traits<_CharT>> std::ostream_iterator< _Tp, _CharT, _Traits >::ostream_iterator (const ostream_iterator< _Tp, _CharT, _Traits > &__obj) [inline] Copy constructor. Definition at line 187 of file stream_iterator.h. Member Function Documentation template<typename _Tp , typename _CharT = char, typename _Traits = char_traits<_CharT>> ostream_iterator& std::ostream_iterator< _Tp, _CharT, _Traits >::operator= (const _Tp &__value) [inline] Writes value to underlying ostream using operator<<. If constructed with delimiter string, writes delimiter to ostream. Definition at line 193 of file stream_iterator.h. Author Generated automatically by Doxygen for libstdc++ from the source code. libstdc++ Tue Jun 10 2014 std::ostream_iterator< _Tp, _CharT, _Traits >(3)
All times are GMT -4. The time now is 09:18 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy