What's wrong with my problem - Segmentation fault

Hello everyone, my program is not working and i dont know why! Appear this messenger to me "Segmentation fault". Help me please.
File "matriz.txt":
7 1 6 2 0 0 0 8 4
0 0 8 0 7 0 0 0 0
0 0 4 0 1 0 5 0 7
8 4 0 1 6 0 0 0 2
2 0 0 0 0 0 0 3 5
6 3 0 7 5 0 0 0 0
0 0 2 0 4 7 1 0 0
0 0 3 0 2 8 4 0 9
0 5 0 0 0 1 2 0 0

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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#include <iostream>
#include <fstream>
#include <string.h>
#include <stdio.h>
#include <cstdlib>

using namespace std;

void menu();
void lerJogo(char **matriz, char *arquivo, int &verifica);
void imprimeMatriz (char **matriz, int n);

int main ()
{
	char **matriz;	
	int escolhaMenu;
	char *arquivo;
	int verifica = 0;

	arquivo = new char (20);
	
	matriz = new char *[10];

	for (int l = 0; l <= 9; l++)
	{
		matriz[l] = new char[10];
	}

	menu();

	cin >> escolhaMenu;

	while(escolhaMenu != 1 && escolhaMenu != 2)
	{
		menu();
		cin >> escolhaMenu;
	
	}

	cout << "Indique o arquivo texto contendo o jogo: ";
	cin >> arquivo;
		

	lerJogo (matriz, arquivo, verifica);
	imprimeMatriz(matriz, 9);
	



	
			
	

	




	return 0;

}

void menu()
{
	cout << "--------------SUDOKU--------------" << endl;
	cout << "Digite 1 para jogar e 2 para sair:" << endl;

}
void lerJogo(char **matriz, char *arquivo, int &verifica) // ler os dados de entrada da matriz no arquivo
{
	cout << "Antes" << endl;
	ifstream arqEntrada;
	arqEntrada.open ("matriz.txt");	
	cout << "Depois" << endl;
	char numero;
	int l = 1
	int c = 1;  // linha, coluna
	
	
	
	if (!arqEntrada)
	{	
		cout << "Não foi possível encontrar o arquivo: " << arquivo << endl;
		arqEntrada.close();
	}	
	else
	{
		
		while(!arqEntrada.eof())
		{	
			arqEntrada >> numero;
			matriz[l][c] = numero;
			c++;

			if (c == 10)
			{
				c = 1; // volta para a coluna 1
				l++;	// começa a andar a linha
			}
		}
		
		arqEntrada.clear();
		arqEntrada.close();	


	}


}
void imprimeMatriz (char **matriz, int n)
{
	for (int l = 1; l <= 9; l++)
	{
		for (int c = 1; c <= 9; c++)
		{
			cout << matriz[l][c] << " ";

		}
		cout << endl;

	}





}
Your dupe thread in the unix/linux section already has a reply that you should consider.

It may be true that you miss-posted, but you should really put in more effort when you can.
Topic archived. No new replies allowed.