| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 922 人关注过本帖, 1 人收藏
标题:strncpy的奇怪指针问题
只看楼主 加入收藏
yangyang321
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-11-25
收藏(1)
 问题点数: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
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
char *str 只是定义了一个字符指针,并没有存放的空间

后面的字符串是个常量,不允许修改的

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-11-25 16:19
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
收藏
得分:0 
char *des = "hahahaheiheialsdjfsdfdskf";
相当于const char *des = "hahahaheiheialsdjfsdfdskf";
改成这样就可以了char des[ ]="hahahaheiheialsdjfsdfdskf";

英者自知,雄者自胜
2007-11-25 16:25
yangyang321
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-11-25
收藏
得分:0 
呵呵,了承
谢谢2位
版主辛苦
2007-11-25 22:39
josen0205
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:307
专家分:52
注 册:2007-5-8
收藏
得分:0 
strncpy(des,str,10); 这样的语句很容易出错的
最好加上一句 des[10] = '\0';

只有想不到,没有做不到
2007-11-26 09:19
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
收藏
得分:0 
嗯,楼上的做法比较安全

英者自知,雄者自胜
2007-11-26 11:04
wangfengLLD
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-11-6
收藏
得分: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
快速回复:strncpy的奇怪指针问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022282 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved