/* Launo Tuuri --- C-ohj (Taina) s97 ------ Laskarit 6 Tehtävä 1 */ #include #include void virhe() { fprintf(stderr, "Muistinvaraus epäonnistui!\n"); exit(1); } void *safe_malloc(size_t size) { void *p = malloc(size); if (p == NULL) virhe(); return p; } void *safe_calloc(size_t nobj, size_t size) { void *p = calloc(nobj, size); if (p == NULL) virhe(); return p; } void *safe_realloc(void *p, size_t size) { p = realloc(p, size); if (p == NULL) virhe(); return p; } int main() { int i; /* laillista käyttöä */ char *m = safe_malloc(100); for (i=0; i<50; ++i) m[i] = 'a'; m[i] = '\0'; puts(m); m = safe_realloc(m, 20); puts(m); m = safe_calloc(sizeof(char), 20); puts(m); /* kokeillaan, ovatko "safe" */ /* m = safe_malloc(100000000); oli */ /* m = safe_calloc(1000, 1000000); oli */ m = safe_realloc(m, 100000000); puts("Höh, läpi tuli!"); return 0; }