Что я понимаю, так это то, что этого не следует делать, но я думаю, что я видел примеры, которые делают что-то подобное (код примечания не обязательно синтаксически правильный, но идея есть)
typedef struct{
int a,b;
}mystruct;
А потом вот функция
mystruct func(int c, int d){
mystruct retval;
retval.a = c;
retval.b = d;
return retval;
}
Я понял, что мы всегда должны возвращать указатель на структуру malloc, если мы хотим сделать что-то подобное, но я уверен, что видел примеры, которыесделать что-то подобноеЭто правильно?Лично я всегда либо возвращаю указатель на структуру malloc, либо просто передаю ссылку на функцию и изменяю там значения.(Поскольку я понимаю, что, как только область действия функции закончится, любой стек, использованный для размещения структуры, может быть перезаписан).
Давайте добавим вторую часть к вопросу: зависит ли это от компилятора?Если да, то каково поведение последних версий компиляторов для рабочих столов: gcc, g ++ и Visual Studio?
Мысли по этому поводу?