c语言指针
2013-11-01 21:23
197 查看
初学c语言,今天写了个简单demo,出现段错误。写下来可以方便记忆,也希望高手指导。
出错:段错误
add指针的指向可以修改,但是指向的值不能修改。因为"123"存放到常量数据段,只读
如果把char *add注释掉,去掉char [add]行注释,则运行正确
修改方法
#include <stdio.h> #include <string.h> void get( char *p); void main() { char *add = "123"; //char add[30] = {'A','B','c','d','e'}; get(add); printf("%s\n", add); } void get(char *p) { strcpy(p, "hello world"); printf("%s\n", p); }
出错:段错误
add指针的指向可以修改,但是指向的值不能修改。因为"123"存放到常量数据段,只读
如果把char *add注释掉,去掉char [add]行注释,则运行正确
修改方法
#include <stdio.h> #include<stdlib.h> #include <string.h> void get( char **p); void main() { char *add = "123"; //char add[30] = {'A','B','c','d','e'}; get(&add); printf("%s\n", add); } void get(char **p) { *p = (char *)malloc(100); strcpy(*p, "hello world"); printf("%s\n", *p); }
相关文章推荐
- 水仙花之java与c++的战争======
- uva 165 卡住了一下午!
- 分享:写了一个 java 调用 C语言 开发的动态库的范例
- 查杀系统进程
- 二叉树遍历算法
- RSA加密算法c++简单实现
- C/C++内存泄漏及其检测工具
- C语言的那些事——sqrt()函数 和 double型数据的“%lf”
- C++ char*,const char*,string的相互转换
- 将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相)
- Visual c++ 项目开发案例 全程实录 源代码
- 分享:写了一个 java 调用 C语言 开发的动态库的范例
- 各种排序算法稳定性的总结
- C++宏定义错误
- [原]C语言基础
- [原]C语言基础
- 安卓程序代写 网上程序代写[原]C语言基础
- 配置sublime 编译运行c++
- 推荐五星级C语言学习网站
- Effective C++ 第二版 31)局部对象引用和函数内new的指针 32)推迟变量定义