OK, I created pointer of an array of structure of size 10; initialize it but when i print it is is only printing the last element for two of the members (sigName and rfConn). Can someone tell me what I am doing wrong? see code below as well as output.

Code:
// Rev 2: make fixes below:

#include <ansi_c.h>

#define MAX 10
char * strArry[MAX]; // strArry points to an array consisting of 10 strings
char * muxStr[100];
    
typedef struct
{
    char* sigName;
    char* rfConn;
    int chan;
}mux;

mux *mTable[MAX];
    
// Function prototypes
int initArryIIS(char *p, int i);
int printArryIIS(char *p, int i);

int main(void)
{
    int i;
    char tempStr[20];
    
    for(i=0; i<MAX; i++)
    {   // note strArry[i] will have point to the address location of block of memory for 20 character size
        strArry[i] = malloc(20 * sizeof (char)); // create block size MAX of memory for each string element i
    }

    for(i=0; i<MAX; i++)
    {
        mTable[i] = malloc(25 * sizeof(mux));
    }
        
    char *pTemp;
    
    for(int n=0; n<MAX; n++)
    {
        pTemp = strArry[n];      // duplicate pointer (strArry) address
        initArryIIS(pTemp,n);  // initialize string pointer array
        printArryIIS(pTemp,n); // print content of array which pointer sPtr points to

        sprintf(tempStr,"REF_OUT%d\0",n);
        mTable[n]->sigName = tempStr;
        sprintf(tempStr,"J%d\0",n+1);
        mTable[n]->rfConn = tempStr;
        mTable[n]->chan = n+1;
    }

    printf("\n\nNo.     NAME  TYPE  CH\n==========================\n");
    for(i=0; i<MAX; i++)
    {
        printf("[%d] %9s %5s %4d\n", i, mTable[i]->sigName, mTable[i]->rfConn, mTable[i]->chan);
    }
    getchar();
    return 0;
}


int initArryIIS(char *p, int i)   // array size = 10 string elements in array
{
    sprintf(p,"string%d\0",i); // init element i in string pointer array

    return 0;
}

int printArryIIS(char *p, int i) // array size = 10 string elements in array  
{
    printf("[%-d]  %-15s\n",i,p);

    return 0;
}
Program OUTPUT:
[0] string0
[1] string1
[2] string2
[3] string3
[4] string4
[5] string5
[6] string6
[7] string7
[8] string8
[9] string9


No. NAME TYPE CH
================
(why isn't column NAME and TYPE showing duplicates and why no increment?)
[0] J10 J10 1
[1] J10 J10 2
[2] J10 J10 3
[3] J10 J10 4
[4] J10 J10 5
[5] J10 J10 6
[6] J10 J10 7
[7] J10 J10 8
[8] J10 J10 9
[9] J10 J10 10