1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <assert.h>
// WARNING: this is bad, do not do this
// NEVER return the address of a stack allocated variable
// from this function
int* return_address_of_stack_variable(int value) {
int n = value;
int* a_n = &n;
return a_n;
}
int main(int argc, char* argv[]) {
int* a_n1 = return_address_of_stack_variable(5);
int* a_n2 = return_address_of_stack_variable(7);
printf("Number is %d at address %p\n", *a_n1, (void*)a_n1);
printf("Number is %d at address %p\n", *a_n2, (void*)a_n2);
return EXIT_SUCCESS;
}
/* vim: set tabstop=4 shiftwidth=4 fileencoding=utf-8 noexpandtab: */
|
© Copyright 2022 Alexander J. Quinn This content is protected and may not be shared, uploaded, or distributed.