我想在main.c中使用變量來自foo.c的,和我寫的:這個使用extern關鍵字的C程序有什麼問題?
foo.c
#include <stdio.h>
int a[] = {3, 2};
void foo()
{
printf("foo\taddress of a:%x\n", a);
printf("foo\tvalue of a[0]:%x\n", a[0]);
}
main.c
#include <stdio.h>
extern int *a;
int main(void)
{
foo();
printf("main\taddress of a : %x\n", a);
printf("main\tvalue of a[0] : %x\n", a[0]);
return 0;
}
和結果輸出:
foo address of a:804a014
foo value of a[0]:3
main address of a : 3
Segmentation fault (core dumped)
爲什麼呢?
您使用的是64位操作系統嗎? –
@PaulR I使用32位ubuntu 12.04 –