wenn du s2 so wie oben initialisierst, würden die 5 bytes mit "hallo" beschrieben werden UND das nachfolgende byte mit einer 0, egal ob da ne variable kommt oder nicht ... es wäre in jedem falle ein "illegaler" zugriff den du vermeiden solltest ... wenn du irgendeine methode aufrufst die mit strings arbeitet, erwartet sie in er regel IMMER einen pointer und eine längenangabe, weil ein pointer nie weis wie groß der string ist auf den er zeigt

wenn du jetzt NACH s2 zum beispiel eine byte variable hast und diese VOR dem strcmp veränderst, erkennt er das ende des strings nicht mehr automatisch und es kann mörderisch krachen ^^