Ist die spprintf-Funktion für RETURN_STRINGL in der PHP-Erweiterung erforderlich?
PHPz
PHPz 2017-06-05 11:07:02
0
1
897

RT, wenn ich der auszugebenden Zeichenfolge mit char* direkt einen Wert zuweise und die Zeichenfolgenlänge direkt in RETURN_STRINGL fest codiere, wird das Ergebnis während der Ausführung ausgegeben, aber dann wird ein „Segmentierungsfehler, Kern wurde ausgegeben“ gemeldet Wenn Sie jedoch die offiziell empfohlene spprintf-Funktion verwenden, um einen Wert zuzuweisen und die Länge abzurufen, wird kein Fehler gemeldet.

PS: Wenn im Code im Bild der zweite Parameter von RETURN_STRINGL auf 2 geändert wird, wird derselbe Fehler gemeldet. Ich habe ihn auf 3 geändert, weil ich dachte, PHP würde am Ende die 0 einschließen, aber nachdem ich es versucht habe Ein paar Mal habe ich festgestellt, dass es hier nicht das Problem sein sollte

PHPz
PHPz

学习是最好的投资!

Antworte allen(1)
習慣沉默

RETURN_STRINGL返回的字符串,必须是PHP内存管理分配的内存,结束后会由PHP本身释放,spprintf就是使用的PHP内存管理。像这种情况,可以设置第三个参数为1,表示PHP自身分配相应内存拷贝一份字符串。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage