【发布时间】:2010-04-03 14:17:54
【问题描述】:
我有这个结构;
#define BUFSIZE 10
struct shared_data {
pthread_mutex_t th_mutex_queue;
int count;
int data_buffer_allocation[BUFSIZE];
int data_buffers[BUFSIZE][100];
};
我想为一个进程分配一个data_buffers,为此我执行以下函数;
int allocate_data_buffer(int pid) {
int i;
for (i = 0; i < BUFSIZE; i++) {
if (sdata_ptr->data_buffer_allocation[i] == NULL) {
sdata_ptr->data_buffer_allocation[i] = pid;
return i;
}
}
return -1;
}
但是编译器警告我,我正在将指针与一个值进行比较。当我将& 放在 sdata_ptr 前面时,它会平静下来,但我不确定它是否会起作用。我上面写的不应该是真的吗?
【问题讨论】:
-
为了使其按预期工作(在
NULL修复之后),请记住您需要初始化这些值。