我试图在不同文件(即 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));
}