免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1908 | 回复: 9
打印 上一主题 下一主题

[C] 问一个很弱的问题啊,关于C的字符串指针的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-16 22:44 |只看该作者 |倒序浏览
实在很惭愧啊,C语言水平还是停留在入门水平,今天在写练习的时候突然想起一个问题。
比如我定义了一个字符串指针 char *name = "test";
现在我想给这个指针再加长,在后面加上另外的字符串,就是想达到这样的效果,*name = "test.c";
一下子不知道该如何实现,直接用strcat(name,".c")报segmentation falut。

论坛徽章:
0
2 [报告]
发表于 2009-02-16 22:46 |只看该作者
char *name = "test";
这是name指针指向只读区域
这个问题论坛上出现过很多次了

论坛徽章:
0
3 [报告]
发表于 2009-02-16 22:59 |只看该作者
哦,那意思是说这样的是没法改的是吧。
只能在声明的时候要先声明足够的长,用malloc分配一块内存。

论坛徽章:
1
天蝎座
日期:2013-08-25 10:27:22
4 [报告]
发表于 2009-02-16 23:15 |只看该作者

回复 #3 jackywdx 的帖子

不一定要堆上的,栈上的也可以

论坛徽章:
0
5 [报告]
发表于 2009-02-17 04:40 |只看该作者
又是一个字符串指针的问题

lZ可以先看看其他帖子嘛~~~

http://bbs.chinaunix.net/viewthread.php?tid=833840
http://bbs.chinaunix.net/viewthread.php?tid=537702
http://bbs.chinaunix.net/viewthread.php?tid=497188

不搜不知道,一搜吓一跳啊

论坛徽章:
0
6 [报告]
发表于 2009-02-17 10:00 |只看该作者
char name[256] = "test";
strcat(name, ".c");

论坛徽章:
0
7 [报告]
发表于 2009-02-17 10:20 |只看该作者

回复 #5 samon_fu 的帖子

好,谢谢samon_fu,还有楼上的各位。

论坛徽章:
0
8 [报告]
发表于 2009-02-17 10:21 |只看该作者

回复 #6 zliming 的帖子

恩,用数组的话就可以。
对字符数组和指针数组还是不够了解才会犯错误。

论坛徽章:
0
9 [报告]
发表于 2009-02-17 12:32 |只看该作者
原帖由 jackywdx 于 2009-2-17 10:21 发表
恩,用数组的话就可以。
对字符数组和指针数组还是不够了解才会犯错误。


这跟字符数组和指针数组的区别有什么关系?就是字符字面常量编译器存储于text段只读区域嘛。。

论坛徽章:
0
10 [报告]
发表于 2009-02-17 21:18 |只看该作者
原帖由 雨过白鹭洲 于 2009-2-17 12:32 发表


这跟字符数组和指针数组的区别有什么关系?就是字符字面常量编译器存储于text段只读区域嘛。。

正解,http://bbs3.chinaunix.net/viewth ... p;extra=&page=2

[ 本帖最后由 bsdc 于 2009-2-17 22:31 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP