24小时热门版块排行榜    

查看: 2923  |  回复: 13

空中的落叶

铜虫 (小有名气)


[交流] 【求助】C# 中如何声明结构体数组并赋值

我声明了一个结构体
public struct Str
        {
            public int id;
            public char  s;
        }
并声明了一个变量Sa,
  public  Str [] Sa=new Str[C];
对其进行赋值;老提示说索引超出数组界限
for(int i=0;i             {
                Sa.id=i;
                Sa.s=S;   
            }
其中S是一个字符串,C是S字符串的长度
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

super0077585

金虫 (小有名气)


★ ★
微尘、梦想(金币+2): 欢迎常来这里交流…… 2011-04-01 20:56:11
楼上最好把完整代码贴出来,以便。。。
2楼2011-04-01 20:30:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ygcumt

木虫 (小有名气)


★ ★
微尘、梦想(金币+2): 欢迎常来本版块交流…… 2011-04-01 20:57:26
空中的落叶(金币+2): 谢谢回复,我用你说的方法试了,还是出现同样的错误…… 2011-04-02 09:07:06
对其进行赋值;老提示说索引超出数组界限
for(int i=0;i             {
                Sa = new Str();
                Sa.id=i;
                Sa.s=S;   
            }
这样试试
3楼2011-04-01 20:34:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ygcumt

木虫 (小有名气)


我试了一下,没有错误啊

★ ★
空中的落叶(金币+3): 谢谢回复,我已经找到问题了,是C的赋值有问题……我在声明C时对C进行赋值,可那会的C还是0,所以才会出现超出索引的错误提示…… 2011-04-05 19:03:20
余泽成(金币+2): 谢谢参与应助! 2011-04-21 12:04:15
namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public static int C = 5;
        public   Str [] Sa=new Str[C];
        string S = "sdfsdfsd";
        private void button2_Click(object sender, EventArgs e)
        {
            for(int i=0;i             {
                Sa.id=i;
                Sa.s=S;   
            }
            for (int i = 0; i < C; i++)
            {
                Console.WriteLine(Sa.id+"===="+Sa.s);
            }            
        }   
    }
   
    public struct Str
   {
            public int id;
            public char s;
   }
}

上面这段程序是可以执行的啊,没有问题
4楼2011-04-02 10:16:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sujy1984

木虫 (正式写手)


★ ★
空中的落叶(金币+3): 谢谢回复,就是C的赋值的问题…… 2011-04-05 19:03:51
余泽成(金币+2): 谢谢参与应助,欢迎常来程序语言版! 2011-04-21 12:04:33
引用回帖:
Originally posted by 空中的落叶 at 2011-04-01 16:07:41:
我声明了一个结构体
public struct Str
        {
            public int id;
            public char  s;
        }
并声明了一个变量Sa,
  public  Str [] Sa=new Str[C];
对其进行赋值;老提示说索引 ...

看了看你的代码,可能是C的赋值问候,后面数组引用时查过了数组的范围,lZ最好把代码写详细一点,报错信息也说详细点,特别是C你是怎么赋值的
5楼2011-04-02 11:15:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shizhongcug

新虫 (初入文坛)


★ ★
空中的落叶(金币+2): 谢谢回复,是我的C的赋值有问题…… 2011-04-05 19:04:19
余泽成(金币+2): 欢迎新虫,常来程序语言版! 2011-04-21 12:05:13
引用回帖:
Originally posted by 空中的落叶 at 2011-04-01 16:07:41:
我声明了一个结构体
public struct Str
        {
            public int id;
            public char  s;
        }
并声明了一个变量Sa,
  public  Str [] Sa=new Str[C];
对其进行赋值;老提示说索引 ...

我自己按照你的说法写了个小程序.
namespace Test1
{

    class Program
    {
        public struct Str
        {
            public int id;
            public char s;
        }

        static void Main(string[] args)
        {
            Str[] strs = new Str[5];
            string s = "hello";
            int n = s.Length;
            for (int i = 0; i < n; i++)
            {
                strs.id = i;
                strs.s = s;
            }

        System.Console.WriteLine(strs[n-1].id.ToString());
            System.Console.ReadLine();
        }
    }
}

楼主看加粗的哪一行,如果你使用赋值后的数组的话,记住数组下标,从0-(n-1)是合法的,如果是n 的话,就会出现索引出错的错误.这个问题应该没什么难度,楼主仔细查查你自己的程序吧.
6楼2011-04-02 21:57:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

vis-kaka

金虫 (正式写手)


★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
微尘、梦想(金币+1): 谢谢回复,欢迎常来! 2011-04-20 16:01:36
j结构体中s定义的是字符型,赋值的时候也应该给它字符型,而不是字符串!
             Sa.id=i;
                Sa.s=S;
试一试
7楼2011-04-20 08:22:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

空中的落叶

铜虫 (小有名气)


引用回帖:
Originally posted by vis-kaka at 2011-04-20 08:22:03:
j结构体中s定义的是字符型,赋值的时候也应该给它字符型,而不是字符串!
             Sa.id=i;
                Sa.s=S;
试一试

谢谢回复,我已经找着问题的所在了。根本不在赋值这块,而在声明那句C上,C在一开始的默认值是0,当然会老提示超出索引了……
8楼2011-04-20 08:44:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ryhzd

木虫 (正式写手)


★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
微尘、梦想(金币+2): 谢谢交流讨论…… 2011-04-21 19:44:50
public  Str [] Sa=new Str[5];
for(int i=0;i<5;i++)
            {
                Sa.id=i;
                Sa.s=S;   
            }
你的程序真能编译通过???
Sa 是个数组,怎么会有id 和 s 字段???
9楼2011-04-21 00:47:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

空中的落叶

铜虫 (小有名气)


引用回帖:
Originally posted by ryhzd at 2011-04-21 00:47:45:
public  Str [] Sa=new Str[5];
for(int i=0;i<5;i++)
            {
                Sa.id=i;
                Sa.s=S;   
            }
你的程序真能编译通过???
Sa 是个数组,怎么会有id 和 s  ...

public struct Str
        {
            public int id;
            public char s;
        }
自己定义的的结构体,然后再定义了一个Sa数组,类型就是Str
10楼2011-04-21 08:44:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ryhzd

木虫 (正式写手)



小木虫(金币+0.5):给个红包,谢谢回帖
引用回帖:
Originally posted by 空中的落叶 at 2011-04-21 08:44:49:
public struct Str
        {
            public int id;
            public char s;
        }
自己定义的的结构体,然后再定义了一个Sa数组,类型就是Str

那也应该是 Sa.id 啊
11楼2011-04-21 12:56:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

空中的落叶

铜虫 (小有名气)


引用回帖:
Originally posted by ryhzd at 2011-04-21 12:56:51:
那也应该是 Sa.id 啊

Sa是一个数组啊,你有可能没看完代码
12楼2011-04-21 15:55:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ryhzd

木虫 (正式写手)


试下Sa.id
13楼2011-04-21 16:47:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ryhzd

木虫 (正式写手)



小木虫(金币+0.5):给个红包,谢谢回帖
明白了,小木头上面显示不了 Sa【i】.id ,它会把中括号给删除
14楼2011-04-21 16:48:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 空中的落叶 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 某些机构,以效率低为荣,以效率低作为存在感 +4 yuleib84 2026-08-25 5/250 2026-08-25 14:19 by xuqiangluo
[基金申请] 什么时候开奖? +11 CrisMessi 2026-08-18 12/600 2026-08-25 14:02 by monkeynana
[基金申请] 在坚冰还盖着北海的时候,我看到了怒放的梅花。 +3 ziyangfang 2026-08-25 3/150 2026-08-25 13:14 by huagongfeihu
[基金申请] 没有任何消息-是不是就凉了 +9 图啦图啦 2026-08-24 10/500 2026-08-25 11:59 by 南海小哥
[基金申请] 人气不行了 +11 fansofjerry 2026-08-21 11/550 2026-08-25 11:04 by 孤独的英雄6
[基金申请] 2026国自然函评费到账 +19 羊腰板 2026-08-21 22/1100 2026-08-25 10:38 by popular289
[基金申请] 2026年的国家社科基金项目通讯评审的新规则与新动向、新挑战 +5 process2012 2026-08-23 7/350 2026-08-25 09:42 by huixian257
[基金申请] 今天基金会出结果吗?20260819 +17 kkkl_v 2026-08-19 18/900 2026-08-25 09:41 by windflowerwy
[基金申请] 我面上完蛋了 +13 且听虎啸 2026-08-20 14/700 2026-08-25 09:10 by mrkang
[基金申请] 只有每年这种时候来逛逛小木虫 +25 yaoyewhu2008 2026-08-20 27/1350 2026-08-25 08:01 by Equinoxhua
[基金申请] 明天应该可查了!? +5 chengyan1220 2026-08-23 5/250 2026-08-24 23:28 by 我4大白菜
[基金申请] filecode,4个jtjc了 +14 ziyangfang 2026-08-19 17/850 2026-08-24 18:37 by 哈哈蛤?
[基金申请] 建议基金发布提前给出明确的时间点 +13 kulium 2026-08-21 16/800 2026-08-24 16:27 by superceng
[基金申请] 今日不放榜?网传国自然预计 8 月 27 日可查结果 +17 医学老男孩 2026-08-20 21/1050 2026-08-24 14:21 by refreshing11
[基金申请] 放榜前的不淡定 20+4 snowwithsea 2026-08-19 17/850 2026-08-24 10:20 by echo8914667
[教师之家] 跳槽后在研项目怎么办? +5 简单化xn 2026-08-22 10/500 2026-08-23 12:38 by 简单化xn
[基金申请] 看来今天不会放榜了? +8 chengyan1220 2026-08-21 11/550 2026-08-21 17:52 by dcqxinyang
[基金申请] 今天放榜没戏了吧 +9 yuleib84 2026-08-19 11/550 2026-08-21 10:06 by gltch
[基金申请] 基金啊基金 +4 longfie172 2026-08-20 4/200 2026-08-21 08:58 by mark mao
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
信息提示
请填处理意见