簡體   English   中英

在函數中使用char指針,每次嘗試訪問char指針的第一個char時都會出現seg錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM