関数を介して配列へのポインターを初期化する場合、次のことを行います。
関数を介して配列を初期化および破棄します。
int initArr(int **b)
{
int *arr = (int *) malloc(sizeof(int)*2);
if(arr == NULL)
return 0;
*b = arr;
arr = NULL;
return 1;
}
void destroyArr(int *b)
{
free(b);
b = NULL;
}
配列へのポインタを初期化します。
int *pArr;
int initStatus = initArr(&pArr);
if(initStatus == 0)
{
printf("%s", "error");
return 0;
}
配列へのポインタの操作:
*pArr = 1;
*(pArr + 1) = 2;
printf("0 = %i\n", *pArr);
printf("1 = %i\n", *(pArr + 1));
配列へのポインタを破棄します:
destroyArr(pArr);
pArr = NULL;
これは正しく安全ですか?