[英]Using char pointer in a function, get seg fault whenever trying to access first char of char pointer
我正在编写一个程序,从文件中提取文本并将其转换为卡片,以便以后进行评估。
此代码从文本文件中获取一行,并按空格分析该行。 每次有空白时,cardVal都会更新为新值。 当我尝试访问cardVal的第一个字符cardVal [0]时,我在函数makeCard中遇到分段错误。 但是,在传递给函数之前打印cardVal [0]时,它会提供正确的值。 所以我的问题是如何在函数makeCard中访问char指针的单个char。 任何帮助是极大的赞赏。
我的代码是:
#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!!!!
}
}
printf("%s\\n", buff[0]); //seg fault here
"%s"
期望使用char*
作为参数,但是您传递了char
。 使用"%c"
打印单个char
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.