Güvenli C veya C bir yapı, geri dönmek için mi ?
Anladığım kadarıyla bu işi olmamalı, ama böyle bir şey yapmak örnek (not kodu mutlaka sözdizimsel olarak doğru değil ama bir fikir olduğunu) gördüm sanırım
typedef struct{
int a,b;
}mystruct;
Ve burada bir iÅŸlevi var
mystruct func(int c, int d){
mystruct retval;
retval.a = c;
retval.b = d;
return retval;
}
Her zaman eğer böyle bir şey yapmak istiyorsak malloc çiğnenmiş bir yapı için bir işaretçi dönmek gerekir, ama böyle bir şeyi bu örnekler gördüm pozitif olduğumu anladım. Bu doğru mu? Şahsen ben her zaman da malloc çiğnenmiş bir yapı için bir işaretçi dönmek ya da sadece çalışması için referans ile geçiş yapın ve değerleri orada değiştirin. Benim anladığım işlev kapsamı bittikten sonra, yığın yapısı ayırmak için kullanılan her ne ise üzerine olabilir (çünkü).
Hadi bu soru için ikinci bir parça eklemek: bu derleyici ile değişir Mi? Eğer bunu yaparsa, masaüstü uygulamaları son sürüm için davranış nedir: gcc, g ve Visual Studio?
Bu konudaki düşünceleriniz?
CEVAP
Son derece güvenlidir ve yanlış değil bunu yapmak için. Ayrıca: derleyici. göre değişir değil
(Örnekte olduğu gibi) Eğer yapı çok büyük olduğunda, genellikle, bu yaklaşım malloc çiğnenmiş bir yapı (malloc pahalı bir işlemdir) dönen bile daha iyi olduğunu iddia ediyorum.

Null veya boş toplama geri dönmek için...
Reset veya özel sürüm kullanmaya Gah i...
Nasıl bir sonuç (startActivityForResul...
Bir dosyanın önceki bir SVN revizyon i...
Bir Sözlük geri dönmek için sorgu< E...