关于动态内存申请malloc函数我还不是很明白。
p=(int *)malloc(10*sizeof(int))
而int a[10] 也是10个,那malloc有什么好处呢?
malloc当需要多大内存时,就给你多大,但是定义的时候还是需要给定大小,那他是如何实现动态分配的呢?
小弟还是不明白,问题依旧如上。 是否动态分配函数可以随时更改和回收所分配内存的大小,这才是他的特点所在呢?
ããå½æ°åå:extern void *malloc(unsigned int num_bytes);
ããéè¦å¤´æ件:#include <stdlib.h>
ããåè½:åé é¿åº¦ä¸ºnum_bytesåèçå åå
ããè¿åå¼:å¦æåé æååè¿åæå被åé å åçæé(æ¤åå¨åºä¸çåå§å¼ä¸ç¡®å®)ï¼å¦åè¿å空æéNULLãå½å åä¸å使ç¨æ¶ï¼åºä½¿ç¨free()å½æ°å°å ååéæ¾ãå½æ°è¿åçæéä¸å®è¦éå½å¯¹é½ï¼ä½¿å ¶å¯ä»¥ç¨äºä»»ä½æ°æ®å¯¹è±¡ã
ãã说æ:å ³äºè¯¥å½æ°çååï¼å¨ä»¥åmallocè¿åçæ¯charåæéï¼æ°çANSICæ åè§å®ï¼è¯¥å½æ°è¿å为voidåæéï¼å æ¤å¿ è¦æ¶è¦è¿è¡ç±»å转æ¢ã
ãã示ä¾ï¼
ãã/*åä¸åæ´æ°ï¼å¹¶æååºæåä»ä»¬ï¼æåæå°*/