Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6807427
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T19:49:52+00:00 2026-05-26T19:49:52+00:00

Possible Duplicate: Deleting a pointer to const (T const*) void operator delete (void*); …

  • 0

Possible Duplicate:
Deleting a pointer to const (T const*)

void operator delete (void*);
...
const char *pn = new char, *pm = (char*)malloc(1);
delete pn; // allowed !!
free(pm); // error

Demo.

It’s understandable that free() is a function, so a const void* cannot be converted to void*. But why is it allowed in the case of operator delete (default or overloaded) ?

Is it not functionally a wrong construct ?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T19:49:53+00:00Added an answer on May 26, 2026 at 7:49 pm

    While I quite agree with @JamesKanze’s answer, perhaps somebody would like to see what the standard actually says. According to the standard (§12.1/4):

    const and volatile semantics (7.1.5.1) are not applied on an object under
    construction. Such semantics only come into effect once the constructor for the most derived object (1.8)
    ends.

    and (§12.4/2):

    const and
    volatile semantics (7.1.5.1) are not applied on an object under destruction. Such semantics stop being
    into effect once the destructor for the most derived object (1.8) starts.

    In fairness, this does little more than re-state what @James said, a bit more specifically: the object is only really considered an object from the time the ctor finishes (or all the ctors, when inheritance is involved) to the point that the first dtor begins. Outside those boundaries, const and volatile aren’t enforced.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Possible Duplicate: delete[] supplied a modified new-ed pointer. Undefined Behaviour? Let's say I've allocated
Possible Duplicate: Test for void pointer in C++ before deleting Is code snippet 1
Possible Duplicate: Is there any reason to check for a NULL pointer before deleting?
Possible Duplicate: Deleting files by type in Python on Windows How can I delete
Possible Duplicate: Pre & post increment operator behavior in C, C++, Java, & C#
Possible Duplicate: Prolog delete: doesn't delete all elements that unify with Element In Prolog
Possible Duplicate: Deleting Objects in JavaScript I have a JS object having a large
Possible Duplicate: deleting memory allocated in static function in C++ Hi All, I have
Possible Duplicate: deleting shared memory with ipcrm in Linux I am running Fedora 15
Possible Duplicate: android calendar delete event Actually i write a code for inserting and

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.