C指针一个简单的小错误
2016-03-20 21:52
351 查看
大家觉得下面这行代码可以运行不?
能否得到正确答案。答案是不能的,因为只是定义了指针p,而没有对它指向的区域进行内存的分配,所以会有错误。
稍微修改一下:
还是有错误,理由同上。
如何修改才可以呢?、
上面是这样是可以的。
上面也是可以的。
对指针赋值前一定要进行指针指向区域的内存分配。
#include <stdlib.h> #include <stdio.h> int main(int argc, char const *argv[]) { int *p; *p=6; printf("%d\n",*p); return 0; }
能否得到正确答案。答案是不能的,因为只是定义了指针p,而没有对它指向的区域进行内存的分配,所以会有错误。
稍微修改一下:
#include <stdlib.h> #include <stdio.h> int main(int argc, char const *argv[]) { int *p; int a=6; *p=a; printf("%d\n",*p); return 0; }
还是有错误,理由同上。
如何修改才可以呢?、
#include <stdlib.h> #include <stdio.h> int main(int argc, char const *argv[]) { int *p; int a=6; p=&a; printf("%d\n",*p); return 0; }
上面是这样是可以的。
#include <stdlib.h> #include <stdio.h> int main(int argc, char const *argv[]) { int *p; p=(int *)malloc(sizeof(int)); *p=6; printf("%d\n",*p); return 0; }
上面也是可以的。
对指针赋值前一定要进行指针指向区域的内存分配。
相关文章推荐
- 数据库基本操作
- 关于tag值使用及注意事项
- 23.ELK实时日志分析平台之Beats平台搭建
- linux内核分析 第四周 扒开系统调用的三层皮(上)
- 【MOOC EXP】Linux内核分析实验四报告
- 20145214 《Java程序设计》第3周学习总结
- 多进程同步问题,python多进程解读
- EditPlus配色方案
- 利用Spring AOP 更新memcached 缓存策略的实现(二)
- 算法总结(第一篇)
- webView 简单理解 缓存和删除
- 致四个月后的自己
- 第4周项目2—太乐了
- 英文歌曲:Just One Last Dance(最后一支舞)
- hdoj4505小Q系列故事——电梯里的爱情
- 外键要建立索引的原理和实验
- 入驻“云栖社区”
- SQL SERVER-视图
- 机房重构——七层登录
- 详解二叉查找树算法的实现