Exception class EAccessViolation with message 'Access Violation' - C (СИ)

Узнай цену своей работы

Формулировка задачи:

#include <stdio.h>
#pragma hdrstop
#include <stdlib.h>
#include <conio.h>
float **A, *B, *X;
int n;
int i, j;
int inputmatrix(float **, float *, int);
//int printmatrix(float **);
 
int main() {
    printf("Vvedite razmer matricu: ");
    scanf("%d",&n);
    inputmatrix(A,B,n);
    getch();
    return 0;
}
 
int inputmatrix(float **A, float *B, int n) {
    A = malloc(n*n*sizeof(float));
    B = malloc(n*sizeof(float));
    printf("Vvedite elementu osnovnoy matricu %dx%d:\n",n,n);
    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++) {
            scanf("%f",&A[i][j]); // <<< ЗДЕСЬ
        }
    }
    return 0;
}
First chance exception at $76AAB727. Exception class EAccessViolation with message 'Access Violation'. Process lab6.exe (5440)
Вот ошибка.

Решение задачи: «Exception class EAccessViolation with message 'Access Violation'»

textual
Листинг программы
A = malloc(n*n*sizeof(float));

Объяснение кода листинга программы

  1. A - это переменная, которая хранит указатель на выделенную память. Значение A - это адрес выделенной памяти.
  2. n - это переменная, которая содержит размер массива. Значение n - это размер массива в элементах.
  3. sizeof(float) - это выражение, которое вычисляет размер одного элемента массива в байтах. В данном случае, размер одного элемента массива составляет 4 байта.
  4. malloc(n*n*sizeof(float)) - это функция, которая выделяет память для массива. Функция принимает размер массива в элементах и выделяет память для массива размером n*n элементов типа float.
  5. A - это переменная, которая хранит указатель на выделенную память. Значение A - это адрес выделенной памяти.

Оцени полезность:

13   голосов , оценка 4 из 5