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