Hi,
I have a confusion related to this program.
#include <stdio.h>
int main(void)
{
int value = 10;
char ch = 'A';
int* ptrValue = &value;
char* ptrCh = &ch;
int* ptrValue1 = value;
char* ptrCh1 = ch;
printf("Value of ptrValue = %d and value of ptrValue1 = %d\n", *ptrValue, ptrValue1);
printf("Value of ptrCh = %c and value of ptrCh1 = %c\n", *ptrCh, *ptrCh1);
}
I get two warnings while compiling this program
unipro@ubuguest:/SoftDev/ADSD/Module 1/Unit 1/Rd/C/System$ cc charPointers.c -o charPointers
charPointers.c: In function ‘main’:
charPointers.c:11: warning: initialization makes pointer from integer without a cast
charPointers.c:12: warning: initialization makes pointer from integer without a cast
And I know what they mean.
While running the program I get the following error.
unipro@ubuguest:/SoftDev/ADSD/Module 1/Unit 1/Rd/C/System$ ./charPointers
Value of ptrValue = 10 and value of ptrValue1 = 10
Segmentation fault
I know I am getting the error at second printf method.
So my question is if I store a value in pointer, why can't we de-reference it? Does it behave like a variable?
Thanks.