我想設置一個整數指針數組。程序應該設置索引i處的指針指向一個整數值2 * i。然後程序應該打印出前5個指針元素的pointees,它們應該是0,2,4,6,8。設置一個整數指針數組
出於某種原因,我收到了分段錯誤。有誰能告訴我爲什麼會發生這種情況,我能做些什麼來解決它?
我試圖用「arr [index] =&i;」替換最後一行,它不會給我一個分段錯誤,但仍然給我錯誤的結果。
幫助將不勝感激,剛開始的指針數組。
#include <stdio.h>
void setArr (int);
int * arr[10]; // array of 10 int pointers
int main(int argc, char *argv[])
{
int i;
setArr(0);
setArr(1);
setArr(2);
setArr(3);
setArr(4);
for(i=0; i<5;i++)
printf("arr [%d] = %d\n", i, *arr[i]); /* should be 0, 2, 4, 6, 8 */
return 0;
}
/* set arr[index], which is a pointer, to point to an integer of value 2*index */
void setArr (int index){
int i = 2 * index;
* arr[index] = i;
}
int * arr [10]'只是10個指針,並且不指向任何有效的內存。請分配或使用'int arr [10]'和'arr [index] = i;' – VoidPointer
並且沒有全局變量plox! – 2013-07-03 18:04:50