Использование char-матрицы в качестве параметра функции - PullRequest
0 голосов
/ 21 апреля 2019

Я пытаюсь передать матрицу символов в качестве параметра другой функции, но программа продолжает останавливаться, не выдавая мне никакой ошибки.Я прочитал матрицу из файла, который содержит следующее (каждое значение в отдельной строке): 6 AFAA26 7A4255 1C80B6 2C158F DA8204 5A408A

Мой код:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void read(char s[100][100],int n)
{
    int i;
    for(i=0;i<n;i++)
        printf("%s\n",s[i]);
}

int main()
{
  random();
  FILE *fp=fopen("p1","r");
  int n,i,j;
  fscanf(fp,"%d",&n);
  char s[20][10];
  for(i=0;i<n;i++)
      fscanf(fp,"%s",&s[i]);
  fclose (fp);
  read(s,n);
  return 0;
}

примечание: письменно "for(i=0;i<n;i++) printf("%s\n",s[i]); "в основной функции он правильно читает значения из файла.

Спасибо!

1 Ответ

3 голосов
/ 21 апреля 2019

Ваши размеры из объявленного массива и параметра не совпадают.

Вы можете либо объявить те же размеры, возможно, используя #define, чтобы избежать дублирования, либо взглянуть на этот вопрос для других (возможно, лучших) альтернатив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...