在C语言中,经常要为数据分配一段连续的空间,用于保存一段相同数据类型的数据。这时候为了防止访问越界,常常需要跟一个数值,指配长度。于是我写了一段如下的代码
#ifndef _STRUCT_ARR_H_
#define _STRUCT_ARR_H_
#include <stdio.h>
#include <stdlib.h>
#define STRUCT_ARR(type) \
unsigned int nSize; \
type* pData;
typedef struct Base_arr_
{
STRUCT_ARR(void)
}Base_arr;
typedef struct u_char_arr_
{
STRUCT_ARR(unsigned char)
}u_char_arr;
typedef struct char_arr_
{
STRUCT_ARR(char)
}char_arr;
typedef struct u_int_arr_
{
STRUCT_ARR(unsigned int)
}u_int_arr;
typedef struct int_arr_
{
STRUCT_ARR(int)
}int_arr;
void InitArr(Base_arr* pbase)
{
if (!pbase)
{
return;
}
pbase->nSize = 0;
pbase->pData = NULL;
}
#endif // !_STRUCT_ARR_H_
这段代码,还需要完善