-1

如何在不分配内存的情况下声明数组。通常我们会做

int myArray[10];
printf("%p ", &myArray[0]); // this would print the address.

但这会分配内存。

反正有这样做吗?

4

3 回答 3

4

你可以做

extern int myArray[10];

在任何一个中header file并像这样定义数组

int myArray[10];    // you can also initialize here

在任何一个source file

通过这样做(假设你只有 1 个文件)

extern int myArray[10];
int main(void)
{
    printf("%p ", &myArray[0]); 
    getch();
    return 0;
}

链接器将抛出错误“ Unresolved External Symbol”。链接器将搜索数组以打印其地址,但没有提供数组的定义。所以链接器会抛出错误。

于 2013-09-24T06:52:38.043 回答
2

要在全局范围内显式声明某些内容,您可以使用extern

extern int myArray[10];

但是,您需要在一些(阅读:恰好一个)编译单元中定义它。

于 2013-09-24T06:52:35.773 回答
0

这是一个愚蠢的问题,每次你声明一个数据类型。您将内存分配给该变量。不分配内存就不可能分配内存和使用变量。

于 2013-09-24T09:16:41.803 回答