Bug: class field modified by reference
Mostrar comentarios más antiguos
There is a major bug in Matlab in which the field of a class is modified when passed as an function argument but not requested as an output if the calling function modifies the value internally. In the minimal example below: b.value is not the same before and after calling test.
b.value = 10;
b.value,
a = test(b);
b.value
function a = test(b)
a=1; b=b.value*10;
end
3 comentarios
Walter Roberson
el 1 de Jun. de 2018
I am not seeing anything when I test your code in R2018a.
If b was being modified by the code you post, then it would no longer be a struct (because you are writing over all of b), and b.value would then be a failure.
Your question talks about "field of a class", but your demonstration involves a struct rather than a class.
Antonio Mei
el 1 de Jun. de 2018
Walter Roberson
el 1 de Jun. de 2018
Please post actual example including classdef
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Construct and Work with Object Arrays en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!