型の最大値を超えてしまう例 int a, b, c; int ans; a = 10000; b = 10000; c = 10000; ans = a * b * c; /* -727379968が表示されてしまう */ printf("%d\n", ans); こういった計算結果がおかしくなる現象を防ぐためには、型で扱える値の最大値と最小値をしっかり把握し、計算...
extern int tperrno; extern long tpurcode; /* tperrno 値 - エラー・コード */ * マニュアル・ページで、下記のエラー・コードが返される可能性のある * コンテキストに関する説明があります。 */ #define TPMINVAL 0 /* 最小のエラー・メッセージ */ #define TPEABORT 1 #def...
例えば、上記のfuncAの場合であれば、free(ptrA)の直後にptrA = NULLを行なっておけば、例えミスでfree(ptrA)を二回行なったとしても、二重解放を防ぐことはできます。 二重解放を行う関数funcA intfuncA(void){int*ptrA =NULL; ptrA = (int*)malloc(sizeof(int));if(ptrA ==NULL) {return...
static intdo_tpcall(char *service){ long len; char *server_status; /* グローバル・トランザクションの開始 */ if (tpbegin(30, 0) == -1) { (void)fprintf(stderr, "ERROR: tpbegin failed (%s)¥n", tpstrerror(tperrno)); return(-1); } /* Request the service with the user...
int tpenqueue(char *qspace, char *qname, TPQCTL *ctl, char *data, long len, long flags) tpenqueue()が呼び出されると、qspaceで識別されるキュー・スペース内のqnameキューにメッセージを格納するようにシステムが指示されます。メッセージはdataが指すバッファ内にあり、その長さは...
p = (int*)malloc(sizeof(int) * N); この状態を図示すると下記のようになります。 解放したメモリを指している状態 3つ目の状態は解放したメモリを指している状態です。 malloc関数で確保したメモリを指しているポインタをfree関数で解放すると、そのポインタの指すメモリが解放されます。
int tpenqueue(char *qspace, char *qname, TPQCTL *ctl, char *data, long len, long flags) tpenqueue()が呼び出されると、qspaceで識別されるキュー・スペース内のqnameキューにメッセージを格納するようにシステムが指示されます。メッセージはdataが指すバッファ内にあり、その長さは...
int tpenqueue(char *qspace, char *qname, TPQCTL *ctl, char *data, long len, long flags)tpenqueue()が呼び出されると、qspaceで識別されるキュー・スペース内のqnameキューにメッセージを格納するようにシステムが指示されます。メッセージはdataが指すバッファ内にあり、その長さは...
int tpenqueue(char *qspace, char *qname, TPQCTL *ctl, char *data, long len, long flags) tpenqueue()が呼び出されると、qspaceで識別されるキュー・スペース内のqnameキューにメッセージを格納するようにシステムが指示されます。メッセージはdataが指すバッファ内にあり、その長さは...
#include <atmi.h> int tpenqueue(char *qspace, char *qname, TPQCTL *ctl, char *data, long len, long flags) tpenqueue()が呼び出されると、qspaceで識別されるキュー・スペース内のqnameキューにメッセージを格納するようにシステムが指示されます。メッセージはdataが指すバッファ内...