【发布时间】:2015-12-23 14:29:42
【问题描述】:
我有以下结构:
typedef struct
{
uint8* buffer;
uint32 bufferLength;
} SRequest;
还有一个功能:
void somefunction(const SRequest* request)
{
//The following initialization of the pointer to static structure is not working
static SRequest* request_ptr = {.buffer = request->buffer,
.bufferLength = 0};
.
.
}
还有其他方法可以初始化 request_ptr 吗?
【问题讨论】:
-
“另一种方式”是什么意思?检查 NULL 并使用 malloc()?
-
需要给指针分配内存,看这个stackoverflow.com/questions/11709929/…
-
我的意思是另一种初始化 request_ptr 的方法,而不是这个: static SRequest* request_ptr = {.buffer = request->buffer, .bufferLength = 0};我的意图不是将缓冲区指针初始化为 NULL
-
您必须将指针指向一个有效的、已初始化的结构。 pointer 就是一个pointer。它必须指向真实的东西。
-
为什么需要
request_ptr?您打算以后如何使用该指针?
标签: c static initialization structure