24小时热门版块排行榜    

查看: 2464  |  回复: 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的回帖
相关版块跳转 我要订阅楼主 空中的落叶 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 308求调剂 +4 是Lupa啊 2026-03-09 4/200 2026-03-16 01:21 by Xttdmn
[考研] 0703化学调剂 ,六级已过,有科研经历 +4 曦熙兮 2026-03-15 4/200 2026-03-15 18:01 by JourneyLucky
[考研] 0703化学调剂,求各位老师收留 +7 秋有木北 2026-03-14 7/350 2026-03-15 17:30 by 小物理化学
[考研] 一志愿哈工大材料324分求调剂 +5 闫旭东 2026-03-14 5/250 2026-03-14 14:53 by 木瓜膏
[考研] 266求调剂 +4 学员97LZgn 2026-03-13 4/200 2026-03-14 08:37 by zhukairuo
[考研] 一志愿天大化工(085600)调剂总分338 +6 蔡大美女 2026-03-09 6/300 2026-03-14 02:46 by JourneyLucky
[考研] 一志愿湖师大化学289求调剂 +6 XMCMM3.14159 2026-03-10 6/300 2026-03-14 00:28 by JourneyLucky
[考研] 26考研调剂 +3 ying123. 2026-03-10 3/150 2026-03-14 00:18 by JourneyLucky
[考研] 337一志愿华南理工0805材料求调剂 +7 mysdl 2026-03-11 9/450 2026-03-13 22:43 by JourneyLucky
[考研] 0703化学一志愿211 总分320求调剂 +5 玛卡巴卡啊哈 2026-03-11 5/250 2026-03-13 21:40 by JourneyLucky
[考研] 工科,求调剂 +3 我887 2026-03-11 3/150 2026-03-13 21:39 by JourneyLucky
[考研] 285化工学硕求调剂(081700) +6 柴郡猫_ 2026-03-12 6/300 2026-03-13 20:46 by hmn_wj
[考研] 材料工程调剂 +4 咪咪空空 2026-03-11 4/200 2026-03-13 19:57 by JourneyLucky
[考研] 求调剂 +5 一定有学上- 2026-03-12 5/250 2026-03-13 18:31 by ms629
[考研] 295求调剂 +3 小匕仔汁 2026-03-12 3/150 2026-03-13 15:17 by vgtyfty
[考研] 求调剂 +3 程雨杭 2026-03-12 3/150 2026-03-13 15:06 by JourneyLucky
[考研] 268求调剂 +4 好运连绵不绝 2026-03-12 4/200 2026-03-13 10:45 by hyswxzs
[考研] 270求调剂 085600材料与化工专硕 +3 YXCT 2026-03-11 3/150 2026-03-13 10:13 by houyaoxu
[考研] 081200-11408-276学硕求调剂 +3 崔wj 2026-03-12 4/200 2026-03-12 19:33 by 求调剂zz
[考研] 数二英二309分请求调剂 +3 dtdxzxx 2026-03-09 4/200 2026-03-09 19:56 by yuningshan
信息提示
请填处理意见