24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 2516  |  回复: 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的回帖
相关版块跳转 我要订阅楼主 空中的落叶 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 生物与医药273求调剂 +7 荔题南墙 2026-04-05 7/350 2026-04-06 09:26 by 286640313
[考研] 362求调剂一志愿中国石油大学 +3 我要考大 2026-04-06 3/150 2026-04-06 09:19 by dongzh2009
[考研] 315求调剂 +5 &123456789 2026-04-05 5/250 2026-04-05 19:55 by nepu_uu
[考研] 0860 求调剂 一志愿国科大 348 分 +3 WiiiP 2026-04-03 3/150 2026-04-05 17:43 by Ecowxq666!
[考研] 284求调剂 +7 徐同学_001 2026-04-04 13/650 2026-04-05 17:19 by yulian1987
[考研] 一志愿上海海洋大学083200食品学硕,求调剂,接受其他专业083200 +4 what张 2026-04-04 5/250 2026-04-05 14:07 by chw1980_0
[考研] 318求调剂 +11 ykyhsa 2026-04-05 13/650 2026-04-05 12:44 by aidndnjck
[考研] 081700化学工程与技术 一志愿中海洋 323 求调剂学校 +16 披星河 2026-04-03 16/800 2026-04-05 09:00 by dick_runner
[考研] 085602调剂 初试总分335 +12 19123253302 2026-04-04 12/600 2026-04-05 08:08 by 544594351
[考研] 286求调剂 +3 草木不言 2026-04-04 3/150 2026-04-04 22:40 by lbsjt
[考研] 0835学硕299求调剂 08大类可接受 +5 useryy 2026-04-03 5/250 2026-04-04 20:07 by 蓝云思雨
[考研] 一志愿东北大学085901土木专硕345求调剂 +3 zxt11111 2026-04-04 3/150 2026-04-04 14:21 by 土木硕士招生
[考研] 材料科学与工程考研 +10 拯救皮特托先生 2026-04-02 10/500 2026-04-03 23:57 by userper
[考研] 292求调剂 +21 是妍子也是研子 2026-03-30 22/1100 2026-04-03 21:44 by qlm5820
[考研] 08工科求调剂290分 +5 1314捧花 2026-04-02 8/400 2026-04-02 13:16 by 乔哒哒哒
[考研] 求调剂推荐 +3 南山南@ 2026-04-01 3/150 2026-04-02 12:09 by xiaoranmu
[考研] 085900土木水利336分求调剂 +4 Zhangjiangj 2026-03-31 6/300 2026-04-02 11:40 by 1753564080
[硕博家园] 博一被送出联培感觉不适应怎么办 +3 全村的狗 2026-03-31 3/150 2026-04-01 10:44 by 328838485
[考研] 313求调剂 +6 卖个关子吧 2026-03-31 6/300 2026-03-31 10:58 by Jaylen.
[考研] 本科211总分289,08工学真心求调剂 +3 utopiaE 2026-03-30 3/150 2026-03-30 23:42 by ms629
信息提示
请填处理意见