Incorrect allocation size

Storage was allocated whose size is not a multiple of the size of the pointed-to type.

A typical storage allocation operation requests a certain amount of storage and then assigns the resulting address to some pointer type. If the size of the pointed-to type is equal to the allocation size, then one object of the given type is allocated. If the allocation size is an even multiple of the size of the pointed-to type, then an array of objects of the given type is allocated. Other cases are malformed and are flagged with this error.

ID

Observation

Description

1

Allocation site

The place the memory was allocated

Example


#include <stdlib.h>

typedef struct {
    int f1;
    int f2;
    int f3;
} s1;

typedef struct {
    int f1;
    int f2;
} s2;

int main(int argc, char **argv)
{
    s2 *p = (s2 *) malloc( sizeof(s1) ); // probably intended sizeof(s2)
    free(p);
    return 0;
}
        

Copyright © 2010, Intel Corporation. All rights reserved.