Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Lỗi "0xC0000005: Access Violation" khi cấp phát bộ nhớ động mảng 1 chiều

  1. #1
    Ngày gia nhập
    03 2011
    Bài viết
    12

    Mặc định Lỗi "0xC0000005: Access Violation" khi cấp phát bộ nhớ động mảng 1 chiều

    đấy là bai tích 2 ma trận vuông:
    Code:
    #include "stdio.h"
    #include "conio.h"
    #include "stdlib.h"
    void inputMatrix(float *pMatrix,int n){
         int i,j;
         for(i=1;i<=n;i++)
             for(j=1;j<=n;j++)
                      {
                              printf("nhap [%d][%d]= ",i,j);
                              scanf("%f",pMatrix+i*n+j);
                              }
                              }
    void ouputMatrix(float *pMatrix,int n){
         int i,j;
         for(i=1;i<=n;i++){
                           printf("\n");
                           for(j=1;j<=n;j++)
                                 printf("%8.2f",*(pMatrix+i*n+j));
                                 }
                                 }
    
    void mulMatrix(float *pMatrixC,float *pMatrixA,float *pMatrixB,int n){
         int i,j,k;
         for(i=1;i<=n;i++)
                           for(j=1;j<=n;j++){
                                             *(pMatrixC+i*n+j)=0;
                                             for(k=1;k<=n;k++)
                                                 *(pMatrixC+i*n+j)+=(*(pMatrixA+n*i+k))*(*(pMatrixB+n*k+j));
                                                 }
                                                 }
                                   
    
    void main(){
        float *pMatrixA,*pMatrixB,*pMatrixC;
        pMatrixA=(float*)malloc(sizeof(float));
        pMatrixB=(float*)malloc(sizeof(float));
        pMatrixC=(float*)malloc(sizeof(float));
        int n;
        printf("Nhap cap cua ma tran vuong: ");
        scanf("%d",&n);
        printf("\nNhap du lieu ma tran thu 1: ");
        inputMatrix(pMatrixA,n);
        printf("\nNhap du lieu ma tran thu 2: ");
        inputMatrix(pMatrixB,n);
        printf("\n2 ma tran vua nhap la: ");
        printf("\nMa tran 1: ");
        ouputMatrix(pMatrixA,n);
        printf("\nMa tran 2: ");
        ouputMatrix(pMatrixB,n);
        mulMatrix(pMatrixC,pMatrixA,pMatrixB,n);
        printf("\nMa tran tich can tinh la: ");
        ouputMatrix(pMatrixC,n);
        free(pMatrixA);
         free(pMatrixB);
          free(pMatrixC);
          getch();
        }
    không hiểu sao khi mình run, nó chạy hết và cho kết quả đúng nhưng sau đó là báo lỗi ... hic hic
    F7 trong visual studio ko báo lỗi nhưng mình chạy ra kết quả thì lại bị.
    cảm ơn mọi người đã giải đáp thắc mắc

  2. #2
    Ngày gia nhập
    11 2010
    Bài viết
    589

    C Code:
    1.     pMatrixA=(float*)malloc(sizeof(float));
    2.     pMatrixB=(float*)malloc(sizeof(float));
    3.     pMatrixC=(float*)malloc(sizeof(float));

    Cấp phát bộ nhớ không đủ. Nên khi truy cập vào các vùng nhớ pMatrixA[1] , [2], ... sẽ bị coi là truy cập vào vùng nhớ không được phép. "May" cho bạn là các vùng nhớ đó đã được chương trình cấp phát ở đâu đó nên vẫn ra kết quả đúng.

Các đề tài tương tự

  1. Lập trình C Lỗi: Unhandled exception at 0x77b615de in 24_09.exe: 0xC0000005: Access violation reading location 0x00000074.
    Gửi bởi Zizanzu trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 25-09-2012, 01:55 PM
  2. Lỗi "thread stopped . C:\BC5\Bin\bai1.exe : Fault access violation at 0x404da5:write ofaddress 0x0" sửa như nào?
    Gửi bởi kubin1202 trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 2
    Bài viết cuối: 08-02-2012, 02:58 PM
  3. Mã nguồn C Lỗi 0xC0000005 Access Violation khi gán con trỏ
    Gửi bởi zeuspnt trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 12-07-2011, 02:18 PM
  4. Mã nguồn C Lỗi "An Access Violation (Segmentation Fault) raised in your program.
    Gửi bởi brother_rain_1024 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 12
    Bài viết cuối: 17-12-2010, 06:47 PM
  5. khắc phục lỗi 0xC0000005 Access Violation. Xin hướng dẫn
    Gửi bởi ngthtg735252 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 29-08-2010, 04:34 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn