变量没有名字?

时间:2012-11-06 13:00:16

标签: c variables

我希望能够使用函数输入,但我想存储信息。无论如何要声明一个没有名称且只能通过指针访问的变量吗?

类似的东西:

float* = float NULL 5;

感谢。

编辑:我需要做的是拥有无限数量的存储大量内存的数组。但是,我从文件加载所有这些数据,我需要从许多其他类访问它。我知道函数运行了多少次,所以我可以将它们保存在一个数组中,但我不知道有多少int或者可能已经加载了

因此指针不需要有名称,因为它们将存储在一个数组中以便以后使用。我只是想能够多次创建全局变量,只需从数组中访问它们。

8 个答案:

答案 0 :(得分:2)

答案是否定的。 您必须为变量分配内存。

函数(返回值)应该分配内存或调用函数。

但是你要做的事情甚至不适合C语法。

答案 1 :(得分:0)

好吧,您可以使用malloc()从堆中分配新内存,并将内容存储在那里。这可能是你想要的,然后函数可以返回指针并将其交给其他函数。当不再需要数据时,应使用free()取消分配。

答案 2 :(得分:0)

简单的答案是否定的!那你为什么要这么做呢?

答案 3 :(得分:0)

没有。您可以创建一个您没有使用的名称:

 float myFloatINTERNAL_DONTUSE;
 float * const myFloat = &myFloatINTERNAL_DONTUSE;

但是为了什么?只需声明一个普通的局部变量,并在需要其地址时使用&运算符。

答案 4 :(得分:0)

是的,你可以。

float* p = malloc(sizeof(*p)); 

您有一个命名指针变量p,但它指向的对象没有名称。不要忘记以后free记忆。

答案 5 :(得分:0)

不,C标准(显然你的编译器也是如此)不支持没有名字的变量。 当您声明一个指针时,必须给它一个名字 那么,你想要做的是合理地在堆中创建一个变量,然后通过一个名为的指针访问它:

float * const ptr = malloc(sizeof(float));

就是这样,所以你走了。

答案 6 :(得分:0)

假设有一种方法可以做到,

如何在不使用名称的情况下访问变量?

偶数指针是“命名指针变量”: - )

答案 7 :(得分:0)

除了动态分配的对象(使用malloc创建)外,还支持C99复合文字。

E.g。建筑如下

char **foo = (char *[]) { "x", "y", "z" };

或为了您的目的

float *ptr = (float[]){5};

构造一个数组,实际上你只有指向它的指针而没有对象名本身。