私はmain.cの中のfoo.cから変数aを使用したい、と私は書く:このCプログラムでexternキーワードを使用すると何が問題になりますか?
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ビットOSをお使いですか? –
@PaulR私は32ビットのubuntuを使用しています12.04 –