用c语言发送静态数组,用指针捕捉

用c语言发送静态数组,用指针捕捉,c,dynamic,segmentation-fault,static-libraries,C,Dynamic,Segmentation Fault,Static Libraries,我创建的静态库有问题。在我将主代码移到库中之前,一切都正常,但当我添加库时,我发现了错误,无法确切地找出原因 我有一个名为addEntry(char*name,char*buildings)的函数 当我调用主c文件中的函数时,我使用 addEntry(name,building) 我将name声明为char*name,并相应地使用malloced 但是,我将构建声明为静态数组char building[256] 在我开始将所有内容移动到静态库之前,所有内容都正常工作,但现在我遇到了一个问题 有

我创建的静态库有问题。在我将主代码移到库中之前,一切都正常,但当我添加库时,我发现了错误,无法确切地找出原因

我有一个名为
addEntry(char*name,char*buildings)的函数

当我调用主c文件中的函数时,我使用

addEntry(name,building)
我将name声明为
char*name
,并相应地使用malloced

但是,我将构建声明为静态数组
char building[256]

在我开始将所有内容移动到静态库之前,所有内容都正常工作,但现在我遇到了一个问题

有人知道怎么了吗

编辑:这是代码

    printf("list building: ");

    while (fgets(building,sizeof(building),stdin) != NULL)
    {
        if (building[strlen(building)-1] == '\n')
        {
            building[strlen(building)-1] = '\0';
            break;
        }
    }

    //Everything below I am trying to move into my function addEntry,
    //where everything stays the same, but I have to use the parameters
    //i stated above


    ptr = strtok(building,",");

    while (ptr != NULL)
    {

        strcpy(temp,ptr);
        strcat(temp,"buildingUsers");
        tempFP = fopen(temp,"r");
        fp = fopen(temp,"a");

        if (tempFP == NULL)
        {
            fprintf(fp,"%s",name);
        } else {

            tempREAD = fopen(temp,"r");

            while (fgets(readBuffer,sizeof(readBuffer),tempREAD) != NULL)
            {
                if (strstr(readBuffer,name) != NULL)
                {
                    foundCounter++;
                }
            }

            if (foundCounter == 0)
            {
                fprintf(fp,"\n%s",name);
            } else {
                ;
            }
        }

        ptr = strtok(NULL,",");
        strcpy(temp,"");

        fclose(fp);
        fclose(tempFP);
        fclose(tempREAD);
    }

不,我们不能不看代码就知道出了什么问题。发布一个演示问题的最小示例。@PaulGriffiths将在现在编辑的代码中进行编辑@PaulGriffiths您需要展示一些我们可以实际编译的内容,一个完整的示例,其中除了足以引起您的问题外,没有任何内容。我怀疑
sizeof(building)如果
building
不再在调用
sizeof
的同一范围内声明,则返回指针的
sizeof
而不是数组大小。(但那只是在看茶叶,看不见茶叶)