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

Đề tài: Lỗi cấp phát bộ nhớ động cho con trỏ

  1. #1
    Ngày gia nhập
    05 2016
    Bài viết
    13

    Mặc định Lỗi cấp phát bộ nhớ động cho con trỏ

    Mình có đoạn code chuyển bị ma trận (dòng thành cột và cột thành dòng)
    Yêu cầu chuyển ra một ma trận b mới và mình cấp phát bộ nhớ động cho cả ma trận a và ma trận b rồi. Lúc chạy thì console hiện lên ma trận đã hoán vị kèm lỗi vùng nhớ heap.
    Xử lý sao các bác Click vào hình ảnh để lấy hình ảnh lớn

Tên:		error.jpg
Lần xem:	9
Size:		66.8 KB
ID:		67989
    Code:
    #include <stdio.h>
    #include <iostream>
    #include <conio.h>
    #define getch _getch
    using namespace std;
    void nhapmatran(int *a, int &n)
    {
    	for (int i = 0; i < n; i++)
    	{
    		for (int j = 0; j < n; j++)
    		{
    			cout << "a[" << i << "]" << "[" << j << "]= ";
    			cin >> *(a + (i*n + j));
    		}
    	}
    }
    void xuatmatran(int *a, int n)
    {
    	cout << "mang da xuat ra la: " << endl;
    	for (int i = 0; i < n; i++)
    	{
    		for (int j = 0; j < n; j++)
    		{
    			cout << *(a + (i*n + j)) << '\t';
    		} cout << '\n';
    	}
    }
    void chuyenvi(int *a, int *b, int n)
    {
    	for (int j = 0; j < n; j++)
    	{
    		for (int i = 0; i < n; i++)
    		{
    			*(b + (j*n + i)) = *(a + (i*n + j));
    		}
    	}
    }
    
    void main()
    {
    	int *a, n;
    	int *b;
    	cout << "nhap vao so phan tu cua mang : " << endl;
    	cin >> n;
    	a = new int[n];
    	b = new int[n];
    	if (a == NULL&&b==NULL)
    	{
    		cout << "Khong du vung nho" << endl;
    		exit(0);
    	}
    	nhapmatran(a, n);
    	cout << "ma tran nhap vao la: " << endl;
    	xuatmatran(a, n);
    	chuyenvi(a, b, n);
    	cout << "ma tran sau khi chuyen vi la: " << endl;
    	xuatmatran(b, n);
    	
    	delete a;
    	delete b;
    
    	getch();
    }

  2. #2
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất đông người
    Bài viết
    566

    Trích dẫn Nguyên bản được gửi bởi namnntt Xem bài viết
    Mình có đoạn code chuyển bị ma trận (dòng thành cột và cột thành dòng)
    Yêu cầu chuyển ra một ma trận b mới và mình cấp phát bộ nhớ động cho cả ma trận a và ma trận b rồi. Lúc chạy thì console hiện lên ma trận đã hoán vị kèm lỗi vùng nhớ heap.
    Xử lý sao các bác Click vào hình ảnh để lấy hình ảnh lớn

Tên:		error.jpg
Lần xem:	9
Size:		66.8 KB
ID:		67989
    Code:
    #include <stdio.h>
    #include <iostream>
    #include <conio.h>
    #define getch _getch
    using namespace std;
    void nhapmatran(int *a, int &n)
    {
    	for (int i = 0; i < n; i++)
    	{
    		for (int j = 0; j < n; j++)
    		{
    			cout << "a[" << i << "]" << "[" << j << "]= ";
    			cin >> *(a + (i*n + j));
    		}
    	}
    }
    void xuatmatran(int *a, int n)
    {
    	cout << "mang da xuat ra la: " << endl;
    	for (int i = 0; i < n; i++)
    	{
    		for (int j = 0; j < n; j++)
    		{
    			cout << *(a + (i*n + j)) << '\t';
    		} cout << '\n';
    	}
    }
    void chuyenvi(int *a, int *b, int n)
    {
    	for (int j = 0; j < n; j++)
    	{
    		for (int i = 0; i < n; i++)
    		{
    			*(b + (j*n + i)) = *(a + (i*n + j));
    		}
    	}
    }
    
    void main()
    {
    	int *a, n;
    	int *b;
    	cout << "nhap vao so phan tu cua mang : " << endl;
    	cin >> n;
    	a = new int[n];
    	b = new int[n];
    	if (a == NULL&&b==NULL)
    	{
    		cout << "Khong du vung nho" << endl;
    		exit(0);
    	}
    	nhapmatran(a, n);
    	cout << "ma tran nhap vao la: " << endl;
    	xuatmatran(a, n);
    	chuyenvi(a, b, n);
    	cout << "ma tran sau khi chuyen vi la: " << endl;
    	xuatmatran(b, n);
    	
    	delete a;
    	delete b;
    
    	getch();
    }
    Đề bài như thế nào nhỉ?
    -...- -.- .. .-.. .-.. - .... . -... . .- ... - .-.-.

  3. #3
    Ngày gia nhập
    05 2016
    Bài viết
    13

    Trích dẫn Nguyên bản được gửi bởi Ada Xem bài viết
    Đề bài như thế nào nhỉ?
    Nhập ma trận a kích thước nxn chuyển vị nó ra ma trận b. Chuyển vị là phép là hoán đổi dòng thành cột cột thành dòng đó bác.

    - - - Nội dung đã được cập nhật ngày 28-05-2019 lúc 02:07 PM - - -

    à do em cấp phát bộ nhớ cho ma trận không đủ
    tràn heap tràn heap
    solved được rồi nha các bác

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