Ich habe einen C-Code, ähnlich wie folgt aus:wie Steuerelement Strukturelement Verhalten mit Struct const Zeiger als Funktionsparameter?
struct st
{
int *var;
}
void fun(st *const ptr)
{
// considering memory for struct is already initialized properly.
ptr->var = NULL; // NO_ERROR
ptr = NULL; // ERROR, since its a const pointer.
}
void main()
{
//considering memory for struct is initialized properly
fun(ptr);
}
Ich möchte nicht int *var
als const
in der Strukturdefinition erklären, um nicht mit dem großen Code-Basis zu verwirren. Keine Änderung in der Strukturdefinition vornehmen Gibt es einen Weg in C, um einen Fehler für die NO_ERROR
Zeile ptr->var = NULL; // NO_ERROR
zu bekommen?
Können Sie bitte genauer über _ "Gibt es einen Weg in C, um einen Fehler zu bekommen die Zeile NO_ERROR "_? Fragst du, ob 'ptr-> var = NULL' zu undefiniertem Verhalten führen kann? – user3078414