In einem Ada-Programm mit einfachen char array (Interfaces.C.char array) Deklarationchar_array Zuordnung in Ada
package C renames Interfaces.C;
Msg : C.Char_Array(1..50) := (others => C.To_C(Item=>ASCII.NUL));
Got Laufzeitausnahme bei folgenden Zuordnung "Längenprüfung nicht bestanden":
Msg := C.To_C(Item => "UNKNOWN ERROR",Append_Nul => True));
Was ist falsch in der obigen Zuordnung, die die Ausnahme ausgelöst hat? Gibt es einen einfachen One-Liner-Weg, auf dem ich kleinere Zuordnungen zum Char-Array schreiben kann, wie oben?
'Msg'Length' ist 50. Was die Länge des Wertes ist Sie versuchen, ihm zuweisen? –
@Keith Thompson Ich möchte einen Wert zuweisen, der weniger als 50 ist, und ich möchte Rest verbleibende Elemente automatisch mit Null (ASCII.NUL) -Wert gefüllt werden. Also hier wie Interfaces.C bietet eine Funktion ** To_C **, um Ada ** Strings ** in ** char_array ** zu konvertieren, die ich hier verwendet und die Zeichenfolge, die ich verwendete, ist weniger als 50 Zeichen. –