Я пишу программу, в которой я беру текст из файла и преобразовываю его в руки карты для последующей оценки.
Этот код берет строку из текстового файла и анализирует строку по пробелу.Каждый раз, когда есть пробел, cardVal обновляется с новым значением.Когда я пытаюсь получить доступ к первому символу cardVal, cardVal [0], я получаю ошибку сегментации в функции makeCard.Однако при печати cardVal [0] перед переходом к функции она выдает правильное значение.Поэтому мой вопрос заключается в том, как я могу получить доступ к единственному символу указателя в функции makeCard.Любая помощь очень ценится.
Мой код:
#include <stdio.h>
#include "poker.h"
#include <string.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
FILE *fp;
unsigned long len = 0;
unsigned long read;
char *line = NULL;
char * cardVal;
fp = fopen(argv[1], "r");
if(fp != NULL)
{ //checks if files open
while((read = getline(&line, &len, fp)) != -1)
{ //gets a line
cardVal = strtok(line, " "); //parses line
cardVal = line;
while(cardVal != NULL)
{ //parses line until NULL
printf("%c\n", cardVal[0]); //prints 1st char successfully
cardVal = strtok(NULL, " ");
}
}
}
void makeCard(char * buff)
{
printf("%s\n", buff[0]); //!!!!SEG FAULT HERE!!!!
}
}