0

我试图在不同文件(即 test.c 和 testfunc.c)中的调用之间保留 array1_ptr[i] 的值。但它没有保留下一次通话中的价值

文件:test.h

extern char** array1_ptr;

void change_ptr1(int i); //to fill the values in array1_ptr
void memalloc();

文件:test.c

#include "test.h"
char** array1_ptr;
int main()
{   
    int i;
    memalloc();
    for(i = 0; i < 10; i++)
    {
        change_ptr1(i);//calling the function whose definition in other file
    }
    return 0;
}

文件:testfunc.c

#include "test.h"

void change_ptr1(int i)
{
    array1_ptr[i] = i + 1; //filling the values which are not retained in next call
}
void memalloc()
{
    int i;
    array1_ptr = (char**)malloc(10 * sizeof(char*));
    for(i = 0; i < 10; i++)
        array1_ptr[i] = (char*)malloc(10 * sizeof(char));
}
4

0 回答 0