All pastes #388455 Raw Edit

Untitled

public c v1 · immutable
·published 2007-03-10 02:16 UTC
rendered paste body
#include <stdlib.h>#include <stdio.h>#include <string.h>typedef struct {  char *name;  int x;} blah_t;int main() {  blah_t **b;  blah_t ***bp = &b;  void *p = NULL;  (*bp) = malloc(sizeof(blah_t **));  (*bp)[0] = malloc(sizeof(blah_t *));  p = (*bp)[0];  b[0]->name = strdup("line1");printf("&b[0] = 0x%X\n", &b[0]);  (*bp) = realloc((*bp), sizeof(blah_t *) * 2);  (*bp)[1] = malloc(sizeof(blah_t *));  b[1]->name = strdup("line2");printf("&b[0] = 0x%X\n", &b[0]);  (*bp) = realloc((*bp), sizeof(blah_t *) * 3);  (*bp)[2] = malloc(sizeof(blah_t *));  b[2]->name = strdup("line3");printf("&b[0] = 0x%X\n", &b[0]);  (*bp) = realloc((*bp), sizeof(blah_t *) * 90000);  (*bp)[90000 - 1] = malloc(sizeof(blah_t *));  b[90000 - 1]->name = strdup("line4");printf("&b[0] = 0x%X\n", &b[0]);  (*bp) = realloc((*bp), sizeof(blah_t *) * 90000 * 3);  (*bp)[(90000 * 3) - 1] = malloc(sizeof(blah_t *));  b[(90000 * 3) - 1]->name = strdup("line5");printf("&b[0] = 0x%X\n", &b[0]);  printf("b[0]->name: %s\n", b[0]->name);  printf("b[1]->name: %s\n", b[1]->name);  printf("b[2]->name: %s\n", b[2]->name);  printf("b[89999]->name: %s\n", b[89999]->name);  printf("b[big]->name: %s\n", b[(90000 * 3) - 1]->name);  free(b[0]->name);  free(b[0]);  free(b[1]->name);  free(b[1]);  free(b[2]->name);  free(b[2]);  free(b[90000 - 1]->name);  free(b[90000 - 1]);  free(b[(90000 * 3) - 1]->name);  free(b[(90000 * 3) - 1]);  free(b);  return 0;}