Global redefinition of new or delete

There is a declaration that hides the new or delete intrinsic function.

This is dangerous since it can cause code to behave unexpectedly. It can also cause confusing compilation errors.

ID

Observation

Description

1

Definition

This shows where the redefinition was defined

Example


#include <stdio.h>
#include <new>

class A
{
public:
    void speak() {
        printf("hello");
    }
};
 
void * operator new(size_t size) throw (std::bad_alloc) {
    return NULL;
};
 
int main()
{
    A *a = new A;
    a.speak();
    delete a;
    return 0;
}
        

Copyright © 2010, Intel Corporation. All rights reserved.