Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Memory allocation in C

Name: Anonymous 2011-09-06 9:12

I'm confused about how memory allocation works in C.
Consider the following code.

#include <stdio.h>
#include <stdlib.h>

int main(){
    int a[5];
    int *b;
    b = malloc(sizeof(char) * 5);
    printf("a = %lu b = %lu", sizeof(a), sizeof(b));
    free (b);
    return 0;
}


It returns sizeof(a) to be the actual size of the array a that I allocated. I thought C didn't keep any record of the size of arrays which was the reason why strings have to be null terminated so what's up with that?
On the other hand sizeof(b) returns just the size of the pointer not the size of the array. When I do free(b) how does it know how much memory to deallocate?

Name: Anonymous 2011-09-06 17:21

>>15
This might surprise you, but I invented the ``hating on Jews'' meme.

I feel kind of bad about it :(

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List