函數pba
應該分配給pointers
變量arr
中的指針低於arr
中所有其他指針的平均值。功能內存分配
這是功課 - 雖然我沒有與執行這是一個問題,我覺得東西還沒有完全明顯,我 我的我的問題是
- 我如何分配內存裏面的功能(而不是外面)?
- 我的配置好嗎?我注意到,如果我改變
malloc
行類似pointers = (int **)malloc(sizeof(int*)*2);
它仍然有效,但pointers = (int **)malloc(sizeof(int*));
不會那麼努力,我想我有一些問題了解的大小應該是擺在首位什麼
我調試它,看起來內存一旦離開函數就無法訪問,並且它對我來說沒有意義,因爲它在堆內存中。
void main() {
int arrSize = 6;
int arr[6] = {8,4,2,9,5,4};
int **pointers;
int resSize, i;
pointers = (int **)malloc(sizeof(int*)*arrSize);
pba(arr, 6, pointers, &resSize);
for (i = 0 ; i < resSize ; i++) {
printf("%d,",*(*pointers + i));
}
printf("\n\n");
}
void pba(int* arr, unsigned int size, int ** pointers, int * resSize) {
int i,j = 0,sum = 0;
double avg;
*resSize = 0;
for (i = 0 ; i < size ; i++)
sum += arr[i];
avg = sum/(double)size;
for (i = 0 ; i < size ; i++) {
if (arr[i] < avg)
pointers[(*resSize)++] = &arr[i];
}
}
要在底線做什麼? – 0x90
如果將'int **指針'更改爲'int *指針',則代碼將會簡化。 '指針'只需要指向整數變量。 – suspectus