A 表示された画面左側の[Categories:]から"xc16-ld"の項目をクリックします。
B 表示された画面右側で、[Option categories:]は"General"ですね。
C 画面右下側で、[Heap size]に最大確保するであろうサイズをバイト単位で入力します。
尚、この操作は"MPLAB X v4.10"と"XC16 v1.30"での方法で他の場合は操作方法が異なるかもね。
メモリの割付けと解放を行う関数説明
先ず、使用する場合は#include <stdlib.h> が必要です。
(XC16の場合は"stdio.h"でなく"stdlib.h"の様です間違わない様に)
ptr = malloc(size)
指定したサイズ分のメモリの割り付けを要求します。
unsigned int size : 割り付けたいメモリの大きさを指定します
char* ptr : 成功した場合は割り付けられたメモリへのポインタを返します
メモリが無い場合は0を返します。
free(ptr)
割り付けられているメモリを解放します。
char* ptr : 解放するメモリへのポインタを指定します
例) char *ptr ; ptr = malloc(12) ; memcpy(ptr,"memory test",1) ; free(ptr) ;p = realloc(ptr,size)
例) #define ADDRESSBOOK_SU 10 struct { char name[20] ; char tel[12] ; char adrs[50] ; } c ; char *p , *ptr ; int i ; p = ptr = calloc(ADDRESSBOOK_SU,sizeof(c)) ; for (i=0 ; i < ADDRESSBOOK_SU ; i++) { // 以下の処理例はマイコン的でない記述方法です m(_ _)m printf("Name : ") ; scanf("%s",p->name) ; printf("TEL : ") ; scanf("%s",p->tel) ; printf("Address : ") ; scanf("%s",p->adrs) ; p++ ; }
【きむ茶工房ガレージハウス】
Copyright (C) 2006-2019 Shigehiro Kimura All Rights Reserved.