| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 20179 人关注过本帖
标题:怎么向指针数组中赋值?!!!
只看楼主 加入收藏
苦楝子
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2012-3-18
收藏
 问题点数:0 回复次数:8 
怎么向指针数组中赋值?!!!
最开始定义了char *a[10]
后面想向a[i]中赋字符串 具体该怎么操作啊 最开始用初始化吗
搜索更多相关主题的帖子: 字符串 
2012-05-07 19:53
dzp1018
Rank: 2
等 级:论坛游民
帖 子:43
专家分:92
注 册:2012-3-15
收藏
得分:0 
在给 a[i]赋值是 要用地址符&
例如   int a,b;  a[0]=&a;a[1]=&b;  那么就是 把整形变量a的地址 给 a[0] 把b的地址赋值给 a[1];

2012-05-07 22:09
S_Ringo
Rank: 4
来 自:歌舞伎町
等 级:业余侠客
帖 子:94
专家分:230
注 册:2012-4-15
收藏
得分:0 
其实用string.h头文件中的strcpy函数可以直接赋值……
不过,你觉不觉得有点问题?
定义一个指针数组,因为是数组,所以会分配内存,
但是这个数组未初始化,因此数组里各个元素的值未知,
而数组里各个值是个指针,也就是说,这个指针指向的内存地址未知,
那么再向这个未知的地址所指向的单元赋值,有可能会报错,内存不能为read……
我建议还是再定义一个字符数组,给这个字符数组赋值,并把这个字符数组的首地址赋给这个指针……
个人建议……
因为我测试了,用strcpy函数编译通过,但运行报错……
2012-05-07 23:17
S_Ringo
Rank: 4
来 自:歌舞伎町
等 级:业余侠客
帖 子:94
专家分:230
注 册:2012-4-15
收藏
得分:0 
当然,开始的时候初始化也可以……
我上面说的是你想后面再赋值的情况下……
2012-05-07 23:20
jianyuling00
Rank: 3Rank: 3
来 自:琼州学院
等 级:论坛游侠
帖 子:89
专家分:177
注 册:2012-3-17
收藏
得分:0 
数组好像是不能按你想的这样赋值字符串的,a[10]就是10个格子,一个格子放一个字母,还有一个结束符‘\0'
2012-05-08 00:14
kevin0518
Rank: 1
等 级:新手上路
帖 子:10
专家分:6
注 册:2011-8-23
收藏
得分:0 
涉及到指针的时候最好初始化,否则会出现野指针。。。
2012-05-08 00:59
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
这个哪是初始化那么简单!

授人以渔,不授人以鱼。
2012-05-08 01:07
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
定义了一堆指针,就妄想向指针赋值字符串。把指针当作所指向的对象,这种错误已经解释过多次。

授人以渔,不授人以鱼。
2012-05-08 23:59
丶Shiver
Rank: 1
等 级:新手上路
帖 子:4
专家分:6
注 册:2012-3-15
收藏
得分:0 
这不是定义了10条字符串的意思吗?..
可以这么赋值.
#include<stdio.h>
int main(void)
{
    int ct;
    char *a[10];
    while(ct<10&&gets (a[ct])!=NULL&&a[ct][0]!='\o')
          ct++;
    return 0;
}

这样可以赋值了.当连续打两次回车取消赋值.最多取10条字符串.
2012-05-09 00:11
快速回复:怎么向指针数组中赋值?!!!
数据加载中...
 
   



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

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