25 Stimmen

Können die Eingabe- und die Ausgabestrings für sprintf() gleich sein?

Ich habe diese Art von Konvention in meinem Code in der Vergangenheit schon oft verwendet:

strcpy ( cTmpA, "hello" );
sprintf ( cTmpA, "%s world", cTmpA );

Kürzlich wechselte ich meinen Legacy-C-Compiler zu Visual Studio 2005 und stellte fest, dass ich eine verstümmelte Zeichenfolge aus dem obigen Code erhielt. Da kam mir der Gedanke, dass das Verhalten von sprintf() vielleicht nicht fest definiert ist, wenn eine der Eingaben mit der ausgegebenen Zeichenkette übereinstimmt.

Ist der obige Code für K&R C gültig? Wenn nicht, wie finde ich alle Stellen in meinem Code, an denen diese Art von Aufrufen von sprintf() aufgetreten ist?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X