Announcement

Collapse
No announcement yet.

Giúp tìm lỗi System.NullReferenceException trong hàm.

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [C#] Giúp tìm lỗi System.NullReferenceException trong hàm.

    Tình hình là mình có 1 bài tập về phân số. Đã code OK trong C++ rồi.( chạy ok). Mình mới thử làm winform (trên C#) cũng bài tập đó luôn nhưng nó bị lỗi.hic. ko biết tại sao. các bạn xem hộ mình lỗi này khắc phục như thế nào luôn nha.thanks
    Hàm này của mình có nhiệm vụ lấy phân số trong 1 mảng số ( mảng so này kiểu int).
    VD: mảng số : 235645 ( thì phân số là : 2/3 5/6 4/5 )
    Hàm layps của mình như sau
    Code:
    public void layps(ref mangphanso p, int[] so)// Lấy phân số trong mảng so vào p.
            {
                int i = 0;
                int j = 0;
                for (i = 0; so[i] != '\0'; j++)
                {
                    p.tu[j] = so[i]; // lỗi ở dòng này.
                    p.mau[j] = so[i + 1];
                    i = i + 2;
                }
            }
    Vậy mong các bạn chỉ giáo.
    Last edited by toannv; 02-10-2011, 19:35.
    ----------------------------------------------------------------------------
    Onemp Music Player : Light and powerful android music player

    My APK : APK Extractor and MORE with friendly UI

  • #2
    Originally posted by 10520314 View Post
    Tình hình là mình có 1 bài tập về phân số. Đã code OK trong C++ rồi.( chạy ok). Mình mới thử làm winform (trên C#) cũng bài tập đó luôn nhưng nó bị lỗi.hic. ko biết tại sao. các bạn xem hộ mình lỗi này khắc phục như thế nào luôn nha.thanks
    Hàm này của mình có nhiệm vụ lấy phân số trong 1 mảng số ( mảng so này kiểu int).
    VD: mảng số : 235645 ( thì phân số là : 2/3 5/6 4/5 )
    Hàm layps của mình như sau
    Code:
    public void layps(ref mangphanso p, int[] so)// Lấy phân số trong mảng so vào p.
            {
                int i = 0;
                int j = 0;
                for (i = 0; so[i] != '\0'; j++)
                {
                    p.tu[j] = so[i]; // lỗi ở dòng này.
                    p.mau[j] = so[i + 1];
                    i = i + 2;
                }
            }
    Vậy mong các bạn chỉ giáo.
    Ec. Em viết:
    PHP Code:
    for (0so[i] != '\0'j++) 
    Thì với mảng 235645 nó sẽ loop vượt khỏi range của mảng nên lỗi thôi ( bỏi vì nó khoog tìm thấy số 0 để mà ngừng loop)
    Em sửa lại như sau:
    for (i = 0;i<so.Length; j++)

    Comment


    • #3
      Thanks anh, nhưng vẫn bị lỗi anh ah. tình hình ko có gì thay đổi cả.
      ----------------------------------------------------------------------------
      Onemp Music Player : Light and powerful android music player

      My APK : APK Extractor and MORE with friendly UI

      Comment


      • #4
        Phiền pro nào vào chỉ mình vài chiêu. hic
        ----------------------------------------------------------------------------
        Onemp Music Player : Light and powerful android music player

        My APK : APK Extractor and MORE with friendly UI

        Comment


        • #5
          Originally posted by tauit_dnmd View Post
          Ec. Em viết:
          PHP Code:
          for (0so[i] != '\0'j++) 
          Thì với mảng 235645 nó sẽ loop vượt khỏi range của mảng nên lỗi thôi ( bỏi vì nó khoog tìm thấy số 0 để mà ngừng loop)
          Em sửa lại như sau:
          for (i = 0;i<so.Length; j++)
          Ec, p đã cấp phát đầy đủ chưa? Hay là chưa?

          Comment


          • #6
            cấp phát gì nữa bạn. có thiếu gì nhỉ.
            ----------------------------------------------------------------------------
            Onemp Music Player : Light and powerful android music player

            My APK : APK Extractor and MORE with friendly UI

            Comment


            • #7
              Trường hợp so = [1,2,3,4,5,6]
              for (i = 0;i<so.Length; j++)
              {
              // khi i = 5
              p.tu[j] = so[i];
              p.mau[j] = so[i + 1];// so[6] out of range
              i = i + 2;
              }
              Vậy đổi thành
              for (i = 0;i<so.Length-1; j++)
              là ok.

              Comment


              • #8
                Originally posted by 10520314 View Post
                cấp phát gì nữa bạn. có thiếu gì nhỉ.
                khi bạn sử dụng từ khóa ref ở trước tên biến thì biến đó phải được khởi tạo trước giá trị ban đầu, bạn có thể đưa lỗi lên đây được không
                Last edited by 09520109; 02-10-2011, 16:46.
                Hãy là chính mình!

                Comment


                • #9
                  Originally posted by 08520467 View Post
                  Trường hợp so = [1,2,3,4,5,6]

                  Vậy đổi thành là ok.
                  Vẫn ko đc bạn ah. Vẫn lỗi đó. Tình hình hình vẫn diễn biễn căng thẳng.
                  ----------------------------------------------------------------------------
                  Onemp Music Player : Light and powerful android music player

                  My APK : APK Extractor and MORE with friendly UI

                  Comment


                  • #10
                    Originally posted by 09520109 View Post
                    khi bạn sử dụng từ khóa ref ở trước tên biến thì biến đó phải được khởi tạo trước giá trị ban đầu, bạn có thể đưa lỗi lên đây được không
                    lỗi em nó đây:
                    An unhandled exception of type 'System.NullReferenceException' occurred in Nhom25.exe

                    Additional information: Object reference not set to an instance of an object.
                    ----------------------------------------------------------------------------
                    Onemp Music Player : Light and powerful android music player

                    My APK : APK Extractor and MORE with friendly UI

                    Comment


                    • #11
                      Originally posted by 08520467 View Post
                      Trường hợp so = [1,2,3,4,5,6]

                      Vậy đổi thành là ok.
                      Ủa, nếu vậy thì trên C++ cũng sẽ bị lỗi chứ. Đằng này chạy ngon trên C++. thử nhiều trường hợp thì kết quả đều đúng cả. Chuyển qua C# thì bị lỗi này.
                      ----------------------------------------------------------------------------
                      Onemp Music Player : Light and powerful android music player

                      My APK : APK Extractor and MORE with friendly UI

                      Comment


                      • #12
                        Originally posted by 10520314 View Post
                        lỗi em nó đây:
                        An unhandled exception of type 'System.NullReferenceException' occurred in Nhom25.exe

                        Additional information: Object reference not set to an instance of an object.
                        NullReferenceException thì xem lại 2 tham số truyền vào hàm đã khởi tạo chưa. Cái exception nó rõ ràng quá còn gì.

                        Comment


                        • #13
                          Originally posted by 09520134 View Post
                          NullReferenceException thì xem lại 2 tham số truyền vào hàm đã khởi tạo chưa. Cái exception nó rõ ràng quá còn gì.
                          nếu biết bạn ấy cũng không hỏi rồi, bạn kiểm tra theo lời pro này xem sao
                          nếu được bạn đưa cái class đó lên đây luôn
                          Hãy là chính mình!

                          Comment


                          • #14
                            Mình cũng muốn đưa class nhưng khá dài.
                            Đây là hàm đã gọi hàm layps trên:
                            Code:
                            private void tínhTổngToolStripMenuItem_Click(object sender, EventArgs e)
                                    {
                                        vd = richTextBox1.Text.ToCharArray();
                                        tachso(so, vd);// hàm tách số trong chuỗi. chuỗi lấy từ richtextbox (như trên).
                                        layps(ref mps, so);// ĐÂY EM NÓ ĐÂY BÁC.
                                        int m = demtu(vd);
                                        MessageBox.Show("la" +m+ "");//cái này mình chỉ thử thôi, ko liên qua gì cả.
                                    }
                            Như lời pro kia nói thì phải khởi tạo cho 2 tham số truyền vào hàm (là mps và so), mảng số thì đã có rồi. còn mps thì chưa có. nhưng ko biết khởi tạo ntn?
                            bác nào rảnh test hộ mình cái code đầy đủ.
                            Thanks nhiều lắm.
                            Attached Files
                            ----------------------------------------------------------------------------
                            Onemp Music Player : Light and powerful android music player

                            My APK : APK Extractor and MORE with friendly UI

                            Comment


                            • #15
                              Code:
                              public void layps(ref mangphanso p, int[] so)// Lấy phân số trong mảng so vào p.
                                      {
                              [COLOR="#FF0000"]            p.tu = new int[50];[/COLOR]
                              [COLOR="#FF0000"]            p.mau = new int[50];[/COLOR]
                                          int i = 0;
                                          int j = 0;
                                          for (i = 0; so[i] != '\0'; j++)
                                          {
                                              p.tu[j] = so[i]; // lỗi ở dòng này.
                                              p.mau[j] = so[i + 1];
                                              i = i + 2;
                                          }
                                      }
                              Last edited by 08520195; 02-10-2011, 19:11. Reason: Sửa p = new mangphanso[so.length/2] thành 2 dòng màu đỏ
                              Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
                              Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
                              Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
                              Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
                              ...

                              Comment

                              LHQC

                              Collapse
                              Working...
                              X