Penso che molte persone siano d'accordo sul fatto che i puntatori sono una fonte importante di bug nei programmi C (se non la più grande fonte di bug). Altre lingue puntano completamente a questo scopo. Quindi, quando si lavora in C, sarebbe meglio evitare di usare i puntatori ogni volta che è praticabile? Ad esempio, di recente ho scritto una funzione come questa:
void split (char *record, char *delim,
int numfields, int fieldmax,
char result[numfields][fieldmax]);
Pur non essendo versatile come una variabile allocata dinamicamente, in quanto richiede al programmatore di conoscere il numero di campi in anticipo e qualsiasi cosa oltre il fieldmax
viene troncata (che a volte è accettabile), elimina la necessità di gestione della memoria, e il potenziale per la corruzione della memoria. Penso che questo sia un buon trade, ma mi chiedevo quali fossero le opinioni degli altri programmatori su questo.