Bug: class field modified by reference
Ältere Kommentare anzeigen
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 Kommentare
Walter Roberson
am 1 Jun. 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
am 1 Jun. 2018
Walter Roberson
am 1 Jun. 2018
Please post actual example including classdef
Akzeptierte Antwort
Weitere Antworten (0)
Kategorien
Mehr zu Construct and Work with Object Arrays finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!