24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 2513  |  回复: 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的回帖
相关版块跳转 我要订阅楼主 空中的落叶 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 0703调剂,一志愿天津大学319分 +8 haaaabcd 2026-04-05 8/400 2026-04-06 06:16 by houyaoxu
[考研] 求调剂 +7 张zic 2026-04-05 8/400 2026-04-05 22:57 by Hdyxbekcb
[考研] 272分求调剂 +4 wangyile2233 2026-04-02 4/200 2026-04-05 22:21 by 286640313
[硕博家园] 0856材料化工求调剂,一志愿211,初试成绩349 +3 江淮北月 2026-04-05 3/150 2026-04-05 20:31 by 啵啵啵0119
[考研] 313求调剂 +5 海日海日 2026-04-04 7/350 2026-04-05 13:58 by imissbao
[考研] 346分的生物与医药08600求调剂 +5 常雨阳上岸 2026-04-05 6/300 2026-04-05 13:42 by imissbao
[考研] 270求调剂 +9 小杰pp 2026-03-31 11/550 2026-04-05 11:02 by 风雨无晴
[考研] 285求调剂 +11 哦呦呼o 2026-04-04 11/550 2026-04-05 08:15 by 544594351
[考研] 一志愿安徽某211 0703化学总分339求调剂 +6 晚风不晚 2026-04-04 6/300 2026-04-04 20:11 by dongzh2009
[考研] 一志愿华北电力大学(北京),材料科学与工程学硕265,求调剂 +11 yelck 2026-04-03 12/600 2026-04-04 19:52 by dongzh2009
[考研] 363求调剂 +7 zh096 2026-04-04 7/350 2026-04-04 17:13 by dongzh2009
[考研] 求调剂,一志愿南京航空航天大学 ,080500材料科学与工程学硕 +10 @taotao 2026-04-03 10/500 2026-04-04 09:01 by T可可西里T
[考研] 化工求调剂 +11 荔香芝士椰奶 2026-04-03 11/550 2026-04-03 22:06 by 啵啵啵0119
[考研] 301求调剂 +14 A_JiXing 2026-04-01 14/700 2026-04-03 18:31 by ls刘帅
[考研] 化学070300-总分378-求调剂 +5 挪椅子的泡泡糖 2026-04-02 5/250 2026-04-02 22:20 by ZXlzxl0425
[考研] 282求调剂 +13 呼吸都是减肥 2026-04-01 13/650 2026-04-02 14:10 by baoball
[考博] 26年申博 +3 staryer 2026-03-30 4/200 2026-04-01 23:21 by ai4pharm
[考研] 0817化工学硕调剂 +11 努力上岸中! 2026-03-31 11/550 2026-04-01 20:30 by 赖春艳
[考研] 286求调剂 +5 Sa67890. 2026-04-01 7/350 2026-04-01 19:50 by 6781022
[考研] 一志愿中海洋材料357 +4 麦恩莉. 2026-03-30 4/200 2026-03-31 14:35 by 记事本2026
信息提示
请填处理意见