Я отправляю инициализировать массив кода размером 500, прежде чем заполнить его целыми числами и отправить в эту функцию, чтобы заполнить структуру значениями массива. Но при попытке доступа к коду [0] происходит сбой машины.
instruction *fetchCycle(int *code, instruction *ir, int pc)
{
int index = pc * 4;
printf("accessing code[%d]\n", index);
ir->op = code[index++];
printf("accessing code[%d]\n", index);
ir->r = code[index++];
printf("accessing code[%d]\n", index);
ir->l = code[index++];
printf("accessing code[%d]\n", index);
ir->m = code[index++];
printf("accessing code[%d]\n", index);
return ir;
}
Это функция, которая вызывает fetchCycle ()
// takes in a single instruction and executes the command of that instruction
void executionCycle(int *code)
{
int l, m, sp = MAX_DATA_STACK_HEIGHT, bp = 0, pc = 0, gp = -1, halt = 0, i = 0;
int data_stack[41] = {0}, reg[200];
instruction *ir;
// Capturing instruction integers indicated by program counter
ir = fetchCycle(code, ir, pc++);
// printf("5\n");
while (halt == 0)
{
// printf("6\n");
switch(ir->op)
{ ...
И это вывод на терминал:
код доступа [0] Ошибка сегментации (ядро сброшено)