Вот интересно, что будет в следующей ситуации:
В коде на C# я создаю байтовый массив (byte[]), далее его отдаю по ссылке в функцию, импортированную из C++ dll (pinvoke), то есть этот массив отправляется в unmanaged код, и дальше там производятся с ним некие действия, в том числе и выделяется память каким-нибудь malloc. В результате в C# я имею заполненный массив.
Так вот, обычно после malloc нужно за собой память подчищать в C++, вызовом free. А в данном случае, если я вызову free, то в C# я естественно не получу никакого массива. Допустим, я не отчистил память в C++, т.к.массив я в дальнейшем пользую в C#.
Вопрос: что станет с массивом байт после того когда он мне уже будет не нужен, сработает ли сборщик мусора .NET Framework?