24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 2512  |  回复: 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的回帖
相关版块跳转 我要订阅楼主 空中的落叶 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 086000生物与医药298调剂求助 +9 元元青青 2026-03-31 12/600 2026-04-05 21:03 by 学员8dgXkO
[考研] 本科211,293分请求调剂 +8 莲菜就是藕吧 2026-04-03 9/450 2026-04-05 19:12 by 蓝云思雨
[考研] 307分材料专业求调剂 +7 Hll胡 2026-04-05 7/350 2026-04-05 18:47 by 无际的草原
[考研] 298求调剂 +3 manman511 2026-04-05 3/150 2026-04-05 18:09 by kk112233
[考研] 385分 生物学(071000)求调剂 +11 qf626 2026-04-01 11/550 2026-04-05 17:35 by Ecowxq666!
[考研] 328分调剂 +6 门men 2026-04-04 6/300 2026-04-05 13:40 by imissbao
[考研] 一志愿华中农业大学0710(A)初试329分 求调剂 +4 一名26考研生 2026-04-04 4/200 2026-04-05 10:01 by barlinike
[考研] 材料求调剂 +10 呢呢妮妮 2026-04-01 10/500 2026-04-04 23:12 by 无际的草原
[考研] 085600调剂 +4 1amJJ 2026-04-02 4/200 2026-04-04 21:53 by hemengdong
[考研] 调剂 +4 是可乐不是可乐 2026-04-04 4/200 2026-04-04 19:41 by 唐沐儿
[考研] 085600,320分求调剂 +14 大馋小子 2026-04-04 15/750 2026-04-04 16:27 by 无际的草原
[考研] 309求调剂 +4 快乐的小白鸽 2026-04-04 5/250 2026-04-04 15:55 by cql1109
[考研] 考研调剂 +4 zybz冲冲冲 2026-04-03 6/300 2026-04-04 13:08 by zybz冲冲冲
[考研] 338求调剂 +7 晟功? 2026-04-03 7/350 2026-04-03 16:46 by wxiongid
[考研] 315求调剂 +6 顺理成张 2026-04-03 8/400 2026-04-03 14:04 by 百灵童888
[考研] 285求调剂 +8 AZMK 2026-04-02 11/550 2026-04-02 20:16 by yulian1987
[考研] 一志愿北京科技大学085601材料工程英一数二初试总分335求调剂 +8 双马尾痞老板2 2026-04-02 9/450 2026-04-02 14:45 by 5896
[考研] 266分,一志愿电气工程,本科材料,求材料专业调剂 +10 哇呼哼呼哼 2026-04-01 11/550 2026-04-02 11:31 by lnilvy
[考研] 08生物与医药专硕初试346找调剂 +6 dianeeee 2026-04-01 7/350 2026-04-02 08:23 by guoweigw
[考研] 一志愿北交材料工程总分358 +5 cs0106 2026-04-01 7/350 2026-04-01 11:45 by wangjy2002
信息提示
请填处理意见