Beh, intanto potresti cominciare con il postare quel programma e quella funzione, almeno ne discutiamo su.. cmq i puntatori sono uno dei pilastri fondamentali per un buon programmatore C. Ci si può gestire direttamente la memoria...

Piccolo esempio:

codice:
#include <stdio.h>
#include <stdlib.h>

int main(){
    char array[5] = "Ciao"; // dichiaro un array di 5 bytes
    char *ptr = array; // ptr ora contiene l'indirizzo della prima componente di "array"
    printf("%c\n", *ptr); // stampo la prima componente *(ptr+0), equivalente ad array[0]
    printf("%c\n", *(ptr+1)); // stampo il contenuto dell'indirizzo puntato da (ptr+1)
    printf("%X\n", (ptr+1)); // stampo l'indirizzo di (ptr+1) (equivalente alla printf sotto)
    printf("%X\n", &array[1]); // stampo l'indirizzo di array[1] (equivalente alla printf sopra)
    *(ptr+1)=*(ptr+2); // inverto
    *(ptr+2)='i'; // e....
    
    printf("%s\n", ptr);
    system("pause");
    
    return 0;
}

Risultato:
codice:
C
i
22FF61
22FF61
Caio
Premere un tasto per continuare . . .