Parent directory alloc_int.c
Download
#include <stdio.h> #include <stdlib.h> int *alloc_int_array(void) { // 1) Dangling pointer! // int a[10]; // return a; // 2) Allocating an array on the heap int *p = malloc(sizeof(int) * 10); return p; } void f(int *p, int x) { *(p + 5) = x; } int main() { int *p = alloc_int_array(); f(p, 500); printf("%d\n", p[5]); p = NULL; // memory leak! p = alloc_int_array(); f(p, 501); printf("%d\n", p[5]); free(p); }