-3
내 C/C++ 코드와 관련된 질문이 있습니다. 몇 가지 연구를 시도했지만 내 문제에 대한 구체적인 대답이 없습니다. 가능한 한 빨리 내 질문에 대한 답변을 보내주기 바랍니다.오류 C4700 : 초기화되지 않은 지역 변수 'A'사용
#include <omp.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
#define M 500
#define N 500
int
main()
{
//set number of threads here
//omp_set_num_threads(8);
int i, j, k;
double sum;
double **A, **B, **C;
A = malloc (M * sizeof (double *));
B = malloc (M * sizeof (double *));
C = malloc (M * sizeof (double *));
for (i = 0; i < M; i++)
{
A[i] = malloc (N * sizeof (double));
B[i] = malloc (N * sizeof (double));
C[i] = malloc (N * sizeof (double));
}
double start, end;
for (i = 0; i < M; i++)
{
for (j = 0; j < N; j++)
{
A[i][j] = j * 1;
B[i][j] = i * j + 2;
C[i][j] = j - i * 2;
}
}
start = omp_get_wtime();
for (i = 0; i < M; i++)
{
for (j = 0; j < N; j++)
{
sum = 0;
for (k = 0; k < M; k++)
{
sum += A[i][k] * B[k][j];
}
C[i][j] = sum;
}
}
end = omp_get_wtime();
printf ("Time of computation: %f\n", end - start);
cin.get();
return 0;
}
코드 때문에 몇 가지 버그의 종료 :
다음은 C 언어 내 전체 코드입니다. 코드의 결과는 여기에 주어집니다 :
error C4700: uninitialized local variable 'A' used
error C4700: uninitialized local variable 'B' used
error C4700: uninitialized local variable 'C' used
내 질문 :
안부를 고려하시기 바랍니다. 어쩌면 malloc 대신 "새로운"사용하는 것이 좋습니다 ++
A = (double**) malloc (M * sizeof (double *));
B = (double**) malloc (M * sizeof (double *));
C = (double**) malloc (M * sizeof (double *));
for (i = 0; i < M; i++)
{
A[i] = (double*) malloc (N * sizeof (double));
B[i] = (double*) malloc (N * sizeof (double));
C[i] = (double*) malloc (N * sizeof (double));
}
당신은 C를 사용하는 경우 :
을 '코드가 종료됩니다'라고 말하면 '컴파일러에서 다음과 같은 오류가 발생합니다'라고 생각하십니까? 컴파일러 오류는 줄 참조를 제공해야합니다. 그들이 어떤 라인을 참조합니까? 위에서 붙여 넣은 코드에서 알 수있는 한,'A','B' 및'C'는 각각'malloc'에 의해 올바르게 초기화됩니다. – abligh
귀하의 코드가 C 컴파일러를 사용하여 컴파일되지 않는다고 생각합니다. 프로그램이 C++이기 때문에 C++로 질문에 태그를 붙이십시오 ('#include'및'using namespace std;') –
이것은 유효한 C 코드도 C++ 코드도 아닙니다. 유일한 오류가 있다고 확신합니까? 이것들은 캐스트가없는'double ** '에'void *'가 무효로 지정되는 것과 같은 초기 오류에 의해 유발 될 가능성이 있습니다 (C++에서). C++을 사용한다면 어떤 경우에도'new'를 사용하는 편이 낫습니다. VC++의 어떤 버전을 사용하고 있습니까? – Clifford