サンプル:関数が構造体を返すとき、スタックまたはヒープに保持されますか?
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
typedef struct Animal{
char name[100];
char color[100];
} Animal;
Animal Animal_new() {
Animal aux;
return aux;
}
int main() {
Animal a = Animal_new();
}
内部構造体を返すスタック
に作成され、ヒープに移動されるコピーですか?
返される構造体はフリーでなければなりませんか?
オブジェクトがコピーされます。「ヒープに移動」はありません。 – user2864740
特定のメモリ割り当て方式を使用して実装する必要はありません。それはあなたのプラットフォームに依存します - ABI。最も近代的。必要に応じて複合型を渡すためにレジスタを使用します。 – Olaf