Я провел несколько экспериментов с помощью вызова функции и объявления моей матрицы в функции и использовал для записи «1» в каждой строке и столбце. Однако через некоторое время программа выйдет из строя и перестанет работать.Объявление матрицы в функции и вне функции в качестве глобальной матрицы
Пример один: Матрица объявляется каждый раз, когда он вызывается в цикле в то время как
void func(int row, int col){
int matrix[row][col];
for....
write one in the matrix...
}
Пример два: Матрица объявлена вне функции в качестве глобального
int matrix[row][col];
void func(){
for....
write one in the matrix...
}
основного кода
int main(){
while(1){
func(...);
}
}
Мой вопрос к вам в том, что мой код сбой, когда моя матрица объявлена внутри но не сбой, когда он объявлен вне функции. Вы, ребята, знаете, почему проблема такая? Не является ли матрица временным значением в функции, то есть не будет ли она стерта после выполнения функции?
Вы либо пишете вне границ массива, либо создаете переменную в стеке, которая слишком велика. Конечно, нам нужно увидеть ваш полный код. – dbush
было бы полезно, если вы покажете свой фактический код – Cherubim
его Okey. Я получил свой ответ. Я не думаю, что код необходим для этой конкретной проблемы. – bopia