The following code has a main input of 1-5 which are the amount of times the code will be run. The code prints out the address of the pointers before and after they are assigned.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char **argv)
{
char character ;
int integer ;
char string[50] ;
float fp ;
int i, x = 5 ;
char* cPointer ;
int* intPointer ;
char* sPointer ;
float* fpPointer ;
if (argc > 1)
{
x = atoi(argv[1]) ;
}
else if (x > 5 || x < 1)
{
printf("Invalid number, please input a number between 1-5!") ;
exit (1) ;
}
int count = 0;
while (count <= x)
{
printf("Please enter a character: ") ;
scanf(" %c", &character) ;
printf("Please enter an integer: ") ;
scanf("%d", &integer) ;
printf("Please enter a string: ") ;
scanf("%s", string) ;
printf("Please enter a floating point:") ;
scanf("%f", &fp) ;
printf("\n\nCharacter Pointer: %p", cPointer) ;
printf("\nInteger Pointer: %p", intPointer) ;
printf("\nString Pointer: %p", sPointer) ;
printf("\nFloating Point Pointer: %p", fpPointer) ;
printf("\n\nCharacter: %c", character) ;
printf("\nInteger: %d", integer) ;
printf("\nString: %s", string) ;
printf("\nFloating Point: %.2f", fp) ;
cPointer = &character ;
intPointer = &integer ;
fpPointer = &fp ;
sPointer = string ;
printf("\n\nCharacter Pointer: %p", cPointer) ;
printf("\nInteger Pointer: %p", intPointer) ;
printf("\nString Pointer: %p", sPointer) ;
printf("\nFloating Point Pointer: %p\n\n", fpPointer) ;
count++ ;
}
return 0;
}
The problem comes with the output, where instead of the pointer address for the floating point I am getting (nil) for the first try
Character Pointer: 0x7f0eeed0c1f8
Integer Pointer: 0x7f0eef2d6000
String Pointer: 0x7f0eef2e91c8
Floating Point Pointer: (nil)
Character: a
Integer: 1
String: aa
Floating Point: 1.10
Character Pointer: 0x7ffe236e563f
Integer Pointer: 0x7ffe236e5640
String Pointer: 0x7ffe236e5670
Floating Point Pointer: 0x7ffe236e5644
Please enter a character: b
Please enter an integer: 2
Please enter a string: bb
Please enter a floating point:2.2
Character Pointer: 0x7ffe236e563f
Integer Pointer: 0x7ffe236e5640
String Pointer: 0x7ffe236e5670
Floating Point Pointer: 0x7ffe236e5644
Character: b
Integer: 2
String: bb
Floating Point: 2.20
Character Pointer: 0x7ffe236e563f
Integer Pointer: 0x7ffe236e5640
String Pointer: 0x7ffe236e5670
Floating Point Pointer: 0x7ffe236e5644