Originariamente inviato da devil89
Ho provato ma non funziona...
Forse sbaglio io su qualcos'altro.
...
Sì ... infatti ... riporto il codice con le correzioni in grassetto ...

codice:
#include <stdio.h>
#define L_S 30   /* Lunghezza stringhe */

void leggi (char *s1, char *s2, int *i1, int *i2){
        printf ("Inserire s1: ");
        scanf ("%s", s1);
        printf ("\n");
        printf ("Inserire s2: ");
        scanf ("%s", s2);
        printf ("\nInserire i1: ");
        scanf ("%d", i1);
        printf ("\nInserire i2: ");
        scanf ("%d", i2);
} /* leggi */


/*
IP s1
IP s2
OP s3
*/

void indici (char *s1, char *s2, char *s3, int i1, int i2) {
               char *p1= s1+i1, *p2=s2+i2;
               while (*p1)
                     *s3++=*p1++;
               while (*p2)
                     *s3++=*p2++;
               *s3='\0'; // o anche *s3=0; 
} /* mescola */           

int main () {
    char s1[L_S], s2[L_S], s3[L_S];
    int i1,i2;
    leggi(s1,s2,&i1,&i2);     
    indici(s1,s2,s3,i1,i2);
    printf ("\n\nStringa alternata: %s\n\n\n", s3);
    system ("pause");
} /* main */
Fondamentalmente hai usato male i puntatori ...