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

  • #16
    Trong hàm ghi thêm cái so = new int [n]; là được rồi ( với n là số phần tử trong mảng int vừa tạo)
    Lỗi là chỉ khai báo chứ chưa gọi thực thể . Y như khai báo con trỏ trong c++ mà chưa cho nó trỏ đến vùng nhớ nào hết

    Comment


    • #17
      Originally posted by 09520535 View Post
      Trong hàm ghi thêm cái so = new int [n]; là được rồi ( với n là số phần tử trong mảng int vừa tạo)
      Lỗi là chỉ khai báo chứ chưa gọi thực thể . Y như khai báo con trỏ trong c++ mà chưa cho nó trỏ đến vùng nhớ nào hết
      Người ta truyền vào một cái mảng để đọc số từ trong đó ra mà đi gán nó bằng new thì thôi tiêu đời cái hàm rồi.

      Cách viết cái hàm của chủ topic như vầy chưa hợp lý. Hàm có nhiệm vụ lấy số từ một mảng int[] để tạo ra mangphanso như vậy thì mangphanso phải được khai báo ngay trong hàm và return về. Kiểu sửa trực tiếp mảng được truyền vào như thế này không được hay cho lắm, trừ phi hàm phải sửa nhiều mảng một lúc hoặc gọi đệ quy và ghi vào trong mảng mới cần thiết phải làm như vậy.


      Code:
      public [B][COLOR=#FF0000]mangphanso[/COLOR][/B] layps( int[] so)// Lấy phân số trong mảng so vào p.
              {
                  [B][COLOR=#FF0000]p = new mangphanso[so.length/2];[/COLOR]
      [/B]            int i = 0;
                  int j = 0;
                  for (i = 0; [COLOR="#FF0000"][B]i < so.Length[/B][/COLOR]; j++)
                  {
                      p.tu[j] = so[i]; // lỗi ở dòng này.
                      p.mau[j] = so[i + 1];
                      i = i + 2;
                  }
      [COLOR=#FF0000]           [B] return p;[/B][/COLOR]
              }
      Last edited by 07520004; 02-10-2011, 19:21.

      Comment


      • #18
        ko đọc kỹ, đã sửa code lại 1 tí
        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];
                    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;
                    }
                }
        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


        • #19
          Code:
          public void layps(ref mangphanso p, int[] so)// Lấy phân số trong mảng so vào p.
                  {
                      p = new mangphanso[so.length/2];
                      int i = 0;
                      int j = 0;
                      for (i = 0; so[i] != '\0'; j++)
                      {
                          p.tu[j] = so[i]; // lỗi ở dòng này. // Huynh Hoang Lam keu bao loi gi o day
                          p.mau[j] = so[i + 1];
                          i = i + 2;
                      }
                  }
          Ủa vậy cái này báo lỗi gì ta , vậy lúc truyền tham số thứ 2 vào là mảng a chẳng hạn , a chưa khai báo new bên ngoài mà truyền vào sao????
          Anh Truong An nói đúng rồi , mà em chỉ nói cách chữa lửa tạm thời thôi .
          Last edited by toannv; 02-10-2011, 19:24.

          Comment


          • #20
            Đã sửa lại code trong post #17. Mà chỉ là tương đối thôi, vì không biết cấu trúc của cái mangphanso nó là cái gì thì dĩ nhiên là không thể sửa cho nó chạy đúng được. Mà chủ topic cũng không nói là lỗi ở dòng nào

            Comment


            • #21
              Originally posted by 07520004 View Post
              Đã sửa lại code trong post #17. Mà chỉ là tương đối thôi, vì không biết cấu trúc của cái mangphanso nó là cái gì thì dĩ nhiên là không thể sửa cho nó chạy đúng được. Mà chủ topic cũng không nói là lỗi ở dòng nào
              mangphanso là cái bao gồm 2 mảng con là int[] tuint[]mau đặc trưng ở những ai chưa học OOP
              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


              • #22
                Originally posted by 08520195 View Post
                mangphanso là cái bao gồm 2 mảng con là int[] tuint[]mau đặc trưng ở những ai chưa học OOP
                Vậy bốc 2 hàng đỏ đỏ ở post #18 bỏ lên vị trí tương ứng trong #17

                Comment


                • #23
                  Originally posted by 08520195 View Post
                  mangphanso là cái bao gồm 2 mảng con là int[] tuint[]mau đặc trưng ở những ai chưa học OOP
                  bác này nóng thế, bạn ấy kì này bắt đầu học mà
                  Last edited by 09520109; 02-10-2011, 19:46.
                  Hãy là chính mình!

                  Comment


                  • #24
                    Originally posted by 07520004 View Post
                    Vậy bốc 2 hàng đỏ đỏ ở post #18 bỏ lên vị trí tương ứng trong #17
                    theo e thì là vậy (đang bên ubun nên nhìn code chay bác nào test giùm phát)
                    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


                    • #25
                      Originally posted by 09520109 View Post
                      bác này nóng thế, bạn ấy kì này bắt đầu học là
                      Tại nó hỏi mà không ghi rõ ngay từ đầu để mọi người mất công đoán thôi chứ đâu ai bắt bẻ trình độ làm gì

                      Final version:
                      Code:
                      public [B]mangphanso[/B] layps( int[] so)// Lấy phân số trong mảng so vào p.
                              {
                      [B]            p = new mangphanso;
                                  p.tu = new int [so.Length/2];
                                  p.mau = new int[so.Length/2];[/B]
                                  int i = 0;
                                  int j = 0;
                                  for (i = 0; i < so.Length; j++)
                                  {
                                      p.tu[j] = so[i]; // lỗi ở dòng này.
                                      p.mau[j] = so[i + 1];
                                      i = i + 2;
                                  }
                      [B]            return p;[/B]
                              }
                      Last edited by 07520004; 02-10-2011, 19:46.

                      Comment


                      • #26
                        Originally posted by 09520109 View Post
                        bác này nóng thế, bạn ấy kì này bắt đầu học mà
                        ko phải bắt bẻ trình độ, chỉ là giới thiệu cái gọi là OOP. Ko chừng chủ thớt đọc xong sẽ mày mò OOP ấy chứ
                        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


                        • #27
                          Thanks các bác. đọc mấy cái comments sau ko hiểu gì hết.
                          Hiện tại thì học kỳ này mới học OOP, nhưng học trên C++ là chủ yếu. Còn trên C# là tự mày mò theo yêu cầu của thầy thôi chứ cũng ko ham lắm. nhiều lúc làm ko đc ức chế lắm. với lại học kỳ này nhiều môn quá ( môn nào cũng có thực hành, trừ môn nào ko học thực hành là ko phải thực hành,hì). nên ko có nhiều time để nghiền ngẫm cái này.
                          Thanks mọi người nhiều.
                          ----------------------------------------------------------------------------
                          Onemp Music Player : Light and powerful android music player

                          My APK : APK Extractor and MORE with friendly UI

                          Comment


                          • #28
                            Nói chung, cách thắc mắc về lập trình mà hỏi trên này thì gần như được giải đáp online.

                            Comment


                            • #29
                              Originally posted by 08520195 View Post
                              mangphanso là cái bao gồm 2 mảng con là int[] tuint[]mau đặc trưng ở những ai chưa học OOP
                              Phiền pro nói rõ hơn hàm ý của câu này cái. Thanks
                              ----------------------------------------------------------------------------
                              Onemp Music Player : Light and powerful android music player

                              My APK : APK Extractor and MORE with friendly UI

                              Comment


                              • #30
                                Originally posted by 10520314 View Post
                                Phiền pro nói rõ hơn hàm ý của câu này cái. Thanks
                                1. Cái mangphanso trong cái code của em là cái gì? Cái câu đó là đoán mò cho cái mangphanso kỳ bí của em đó.
                                2. Em đọc post #17, #18 và #25 chưa?

                                Comment

                                LHQC

                                Collapse
                                Working...
                                X