C 语言指针常见的错误


C语言指针常见错误,主要有两种情况:

1).指针未初始化;
2).避免使用scanf给指针赋值;
3).赋值指针为NULL

指针未初始化

这种情况:

int i = 10, *p;

*p = i;
printf("*i=%d\n", *p);

指针变量p是没有初始化的,就是你还没有给他里面赋值地址进去。这种为初始化的情况在高版本的 VS 中是直接编译不过去的;会报错:C4700 使用了未初始化的局部变量“p”

避免 scanf赋值指针

int i = 10, *p;
p = &i;  // 初始化 p,指向 i
scanf("%d", p);

这种情况会很容易把原来的i值,或者指向其他内存位置的值改掉导致软件崩溃,需要谨慎。

赋值指针为NULL

int i = 10, *p = NULL;
*p = i;
printf("%d", *p);

这种情况能编译通过,运行时会报段错误引发了异常: 写入访问权限冲突。 p 是 nullptr。需要特别注意。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM