我有這個結構;C結構指針問題
#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修復之後),請記住,您需要初始化這些值。 – KevenK 2010-04-03 14:31:17