搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ strncpy的奇怪指针问题
标题:
strncpy的奇怪指针问题
只看楼主
yangyang321
等 级:
新手上路
帖 子:13
专家分:0
注 册:2007-11-25
楼主
问题点数:0 回复次数:6
strncpy的奇怪指针问题
int main(void)
{
char *str = "Select * from Table";
char *des = "hahahaheiheialsdjfsdfdskf";
strncpy(des,str,10);
puts(des);
return 0;
}
这段代码执行后提示段错误
有点不明白
改成char des[100];就可以了
难道指针不行?
搜索更多相关主题的帖子:
strncpy
指针
2007-11-25 16:12
永夜的极光
等 级:
贵宾
威 望:
27
帖 子:2721
专家分:1
注 册:2007-10-9
第
2
楼
得分:0
char *str 只是定义了一个字符指针,并没有存放的空间
后面的字符串是个常量,不允许修改的
从BFS(Breadth First Study)到DFS(Depth First Study)
2007-11-25 16:19
静思
来 自:沈阳
等 级:
新手上路
威 望:
8
帖 子:630
专家分:0
注 册:2006-2-28
第
3
楼
得分:0
char *des = "hahahaheiheialsdjfsdfdskf";
相当于const char *des = "hahahaheiheialsdjfsdfdskf";
改成这样就可以了char des[ ]="hahahaheiheialsdjfsdfdskf";
英者自知,雄者自胜
2007-11-25 16:25
yangyang321
等 级:
新手上路
帖 子:13
专家分:0
注 册:2007-11-25
第
4
楼
得分:0
呵呵,了承
谢谢2位
版主辛苦
2007-11-25 22:39
josen0205
来 自:江苏
等 级:
论坛游民
帖 子:307
专家分:52
注 册:2007-5-8
第
5
楼
得分:0
strncpy(des,str,10); 这样的语句很容易出错的
最好加上一句 des[10] = '\0';
只有想不到,没有做不到
2007-11-26 09:19
静思
来 自:沈阳
等 级:
新手上路
威 望:
8
帖 子:630
专家分:0
注 册:2006-2-28
第
6
楼
得分:0
嗯,楼上的做法比较安全
英者自知,雄者自胜
2007-11-26 11:04
wangfengLLD
等 级:
新手上路
帖 子:22
专家分:0
注 册:2007-11-6
第
7
楼
得分:0
给一个用strncpy的例子:
#include <stdio.h>
#include <string.h>
int main(void)
{
char string[10];
char *str1 = "abcdefghi";
strncpy(string, str1, 3);
string[3] = '\0';
printf("%s\n", string);
return 0;
}
nothing is impossible
2007-11-26 11:07
7
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-188278-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.198506 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved