codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#define memory(p,n) (!(p)&&(n) ? malloc((n)) : (p)&&(n) ? realloc((p), (n)) : (free((p)), (void *)0)) #include <stdio.h> #include <stdarg.h> #include <stdlib.h> #include <string.h> int logf(const char *format, ...) { va_list vl; int r; va_start(vl, format); r = vfprintf(stdout, format, vl); va_end(vl); fflush(stdout); return r; } int main() { #define MESSAGE "Hello, world!" char *p; logf("Allocating...\n"); p = (char *)memory((void *)0, 1); logf("Setting %p...\n", (void *)p); *p = 0; logf("Re-allocating %p...\n", (void *)p); p = (char *)memory((void *)p, sizeof(MESSAGE)); logf("Copying \"%s\" to %p...\n", MESSAGE, (void *)p); memcpy(p, (const void *)MESSAGE, sizeof(MESSAGE)); logf("Trying to display %p...\n", (void *)p); printf("%s\n", p); logf("Freeing %p...\n", (void *)p); p = (char *)memory((void *)p, 0); logf("Done!\n"); return 0; }
Private
[
?
]
Run code
Submit