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 malloc
ve sizi uyarır çünkü:
int
, bu yerleşik işlevle uyumlu değildir. in malloc
, a alır size_t
ve 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 malloc
size 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.h
kaldı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: