Dev - C++ - Error repentina no inicializacion de una variable en uso

 
Vista:
sin imagen de perfil
Val: 4
Ha disminuido su posición en 2 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Error repentina no inicializacion de una variable en uso

Publicado por Tomas (2 intervenciones) el 07/01/2020 11:39:21
Buenos dias espero que puedan ayudarme con estos dos problemas:

1) Quiero saber porque el siguiente codigo no me funciona en visual estudio pero si lo pongo en visual estudio code si puedo ejecutarlo sin que me salga "error C4703: posiblemente se utilizó la variable de puntero local 'dmatrix' sin inicializar" (variable que estuve usando dos lineas antes de que me salte ese error)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <iostream>
#include <sstream>
#include <fstream>
 
template <typename T>
void Print(T val) {
	std::cout << val << std::endl;
}
 
 
int main() {
 
	unsigned int row_size, col_size;
	double** dmatrix;
 
	std::string line;
	std::stringstream roow(std::stringstream::in | std::stringstream::out);
 
	std::string PathToFile = "D:\\Dev\\TPV1\\Algebra\\Algebra double\\Matrices.txt";
	std::cout << PathToFile << std::endl;
 
	std::ifstream datafromfile;
	datafromfile.open(PathToFile.c_str());
 
	if (datafromfile.is_open()) {
 
		getline(datafromfile, line);
 
		getline(datafromfile, line);
		roow << line;
		roow >> row_size >> col_size;
		std::cout << "row_size = " << row_size << " , col_size = " << col_size << std::endl;
		roow.clear();
 
		getline(datafromfile, line);
 
 
		dmatrix = new double* [row_size];
		for (unsigned int i = 0; i < row_size; ++i) {
			dmatrix[i] = new double[col_size];
		}
 
 
		for (unsigned int i = 0; i < row_size; ++i) {
			getline(datafromfile, line);
			roow << line;
			for (unsigned int j = 0; j < col_size; ++j) {
				roow >> dmatrix[i][j];
			}
			roow.clear();
		}
 
 
	}
 
 
	for (unsigned int i = 0; i < row_size; ++i) {
		for (unsigned int j = 0; j < col_size; ++j) {
			std::cout << dmatrix[i][j] << " ";
		}
		std::cout << std::endl;
	}
 
 
	for (unsigned int i = 0; i < row_size; ++i) {
		delete[] dmatrix[i];
	}
	delete[] dmatrix;
 
	return 0;
}

Aclaracion: La lectura del archivo no me deberia estar dando problemas porque el error se alza a partir de la linea 57 donde desconoce dmatrix, row_size,row_col
adjunto el archivo txt por si eso puede ayudar a resolver el problema:
Dimension Matriz A:
3 3
Valores:
1 4 5
3 2 1
4 3 1

Espero puedan ayudarme con esto porque realmente quiero saber porque falla mi ide pero en otras no tengo problemas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Error repentina no inicializacion de una variable en uso

Publicado por Rodrigo (539 intervenciones) el 08/01/2020 11:40:04
La linea 38 esta al interior del if que empieza en la linea 25 y termina en la linea 54.
La linea 57 y siguientes viene despues del if por lo que el reclamo del compilador tiene sentido.
Podria no haberse inicializado la variable en ese punto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 4
Ha disminuido su posición en 2 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Error repentina no inicializacion de una variable en uso

Publicado por Tomas (2 intervenciones) el 08/01/2020 14:43:37
Tenes toda la razon! remover el if lo hizo funcionar, muchas gracias por la respuesta! voy a incluir el resto del codigo en el if asi no tengo problemas. De nuevo muchas gracias :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar