sizeof(pointer) - über pointer größe eines arrays ermitteln



  • hallo,

    ich wollte mir gerade selber die funktion
    strcat schreiben.:

    char *My_strcat(char *dst, char *src)
    {
    	int i,j=0;
    
    	for(i=My_strlen(dst);i<My_strlen(dst)+My_strlen(src);i++)
    	{
    		dst[i]=src[j];
    		j++;
    	}
    
    	return dst;
    }
    

    nur strcat überprüft ja auch ob src überhaupt noch an dst passt ne?
    nur wie mache ich das?

    sizeof hat halt probleme die definierte größe eines arrays über einen
    pointer zu ermitteln!

    sizeof(dst) = 4
    sizeof(*dst) = strlen(dst) also die anzahl der zeichen...

    wie kann ich über einen pointer die definierte größer des arrays auf den
    der pointer zeigt herrausfinden?

    danke schonmal, Babelduo



  • babelduo schrieb:

    nur strcat überprüft ja auch ob src überhaupt noch an dst passt ne?

    nö. wennde nicht genug platz hast, macht strcat gnadenlos weiter. pech gehabt 😉

    babelduo schrieb:

    wie kann ich über einen pointer die definierte größer des arrays auf den
    der pointer zeigt herrausfinden?

    leider geht das nicht. bei strings geht's nur, weil die eine \0 am ende haben (in den zeichen taucht die sonst nicht auf). du brauchst also zusätzlich eine ende-kennung oder eine längenangabe o.ä.


Anmelden zum Antworten