Yanıtlar:
Eklemeniz gerekiyor:
#include <stdlib.h>
Bu dosya, yerleşik işlevin bildirimini içerir malloc. Bunu yapmazsanız, derleyici adında kendi işlevinizi tanımlamak istediğinizi düşünür mallocve sizi uyarır çünkü:
int, bu yerleşik işlevle uyumlu değildir. in malloc, a alır size_tve a void*) döndürür .Yardımda işlevlerinize bakmayı alışkanlık haline getirin.
C için çoğu yardım, unix kılavuz sayfalarında modellenmiştir.
Kullanarak:
man malloc
oldukça faydalı sonuçlar verir.
Google man mallocsize ne demek istediğimi gösterecek.
Unix'te, ilgili şeyler için de uygunluk elde edersiniz.
#include <stdlib.h>özetteki satırın bunu programınızda yazmanız gerektiği anlamına geldiğini zaten biliyorsanız .
Diğer çok iyi cevapların yanı sıra, biraz özür dilemek ve diğer cevaplarda henüz tartışılmayan bir şeyi ele almak istiyorum.
Linux'tayken, malloc()kodunuzda kullanmak için,
Aslında zorunda değilsin #include <stdlib.h>.
(Her ne kadar kullanımı stdlib.hçok yaygın olsa da ve muhtemelen oyuncak olmayan her program onu her iki şekilde de içermelidir çünkü çok çeşitli kullanışlı C standart kütüphane işlevleri ve makroları sağlar)
Bunun #include <malloc.h>yerine sen de yapabilirsin .
Ancak, kullanımının kullanımdan malloc.hkaldırıldığını ve kodunuzu taşınabilir hale getirmediğini lütfen unutmayın . Kullanmak istiyorsanız malloc(), her zaman ve her zaman kullanmalısınız (aksini yapmak için açık nedenler dışında) #include <stdlib.h>.
Nedenleri neden , iyi Bu sorunun yanıtları açıklanmıştır: