Pero si le pasamos por error read(*bloque), teniendo char *bloque... no seria lo mismo que tener char **bloque y pasarle read(bloque)
No, lo mismo seria pasarle **bloque, es decir pasarle un caracter en ambos casos ... *bloque es un caracter y en tu escenario bloque es un doble puntero a caracter.