c++ - Understanding the Warning and Compilation Error while Initializing and Declaring Pointer Variable -


this question has answer here:

please @ following code snippet -

int main(){     int  *i_ptr = 5;    printf("%d", *i_ptr);      return 0; } 

here trying declare , initialize pointer variable i_ptr. gives me following warning while compiles fine -

warning: initialization makes pointer integer without cast [enabled default]

but when going execute code gives me following error -

segmentation fault (core dumped)

i know correct way -

int n = 5; int *ptr = &n;   

now have questions -

1. while first code fails @ execution time why doesn't give compilation error, instead of warning?

2. can initialize , declare pointer variable -

int n = 5 // both declaration , initialization of int type variable n   

thanks in advance.

  1. while first code fails @ execution time why doesn't give compilation error, instead of warning?

the difference between errors , warnings depends on flags pass compiler.

it's idea make setting more paranoid during development (-wall, -wextra, possibly -weverything clang), in addition making warnings errors via -werror (which shouldn't set default when shipping code).

  1. can initialize , declare pointer variable

pointer variables store addresses, , need declare addressable can store value 5.

since c99, it's possible use compound literal instead of named variable:

int *p = &(int){ 5 }; 

Comments

Popular posts from this blog

How to run C# code using mono without Xamarin in Android? -

c# - SharpSsh Command Execution -

python - Specify path of savefig with pylab or matplotlib -