Цели этой программы прямо сейчас, чтобы установить каждый переменный массив в 2D массива,Инициализация 2D-массива внутри функции, вызов по указателю. Получение Сегментация Fault
символ mass_data_shift [9] [9];, равный 'T'. Который должен равняться 100 Ts в целом.
Это делается путем вызова функции void с этим адресом 2D-массива в качестве аргумента. Вызов его указателем на то, чтобы он был инициализирован в цикле.
Внутри петли были 2D-массив должен быть установлен в положение T.
* mass_data [mass_data_counter] [mass_data_counter_two] = 'T';
Однако ..... результаты программы в:
- (чаще) сегментация Fault при попытке инициализации * mass_data [4] [2]
- (иногда) A Ошибка сегментации после успешной (?) Программы.
- (Иногда) Программа успешно работает.
Значение программы, где-то, выписывается за пределы. Любая помощь будет оценена как при запуске программы без ошибки сегментации, так и при исправлении других ошибок.
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
void mass_data_define(char (*mass_data)[9][9]){
int mass_data_counter;
int mass_data_counter_two = 0;
for (mass_data_counter=0;mass_data_counter<9;mass_data_counter++){
do {
std::cout << "|Array #1 " << mass_data_counter
<< " ::: |Array #2 " << mass_data_counter_two
<< std::endl;
*mass_data[mass_data_counter][mass_data_counter_two] = 'T';
std::cout << *mass_data[mass_data_counter][mass_data_counter_two];
mass_data_counter_two++;
std::cout << "---------End of Counter 2 Init Code----------" << std::endl;
} while (mass_data_counter_two < 9);
mass_data_counter_two = 0;
}
}
int main()
{
char mass_data_shift[9][9];
mass_data_define(&mass_data_shift);
std::cout << "-END-" << std::endl;
return 0;
}
Последняя редакция: Основная причина была решена с помощью szym ниже. Извините за пробелы и отсутствие iostream, была проблема форматирования, когда я сделал сообщение. Также изменил цикл, чтобы он соответствовал длине массива, как предлагается ниже.
У вас есть только 81 место. Массив из N индексируется 0..N-1. Мне кажется, вы думаете, что размер массива равен N + 1, потому что вы говорите, что ваш массив 9x9 содержит 100 элементов. Он содержит только 81. –
Похоже, вы зацикливаете от 0 до 9. Ваш массив поддерживает только от 0 до 8. –
Хорошо, после того, как я изменил цикл, чтобы перейти от 0-8, а не к 0-9, я все еще получаю ошибку сегментации. Идеи? –