我希望能够使用函数输入,但我想存储信息。无论如何要声明一个没有名称且只能通过指针访问的变量吗?
类似的东西:
float* = float NULL 5;
感谢。
编辑:我需要做的是拥有无限数量的存储大量内存的数组。但是,我从文件加载所有这些数据,我需要从许多其他类访问它。我知道函数运行了多少次,所以我可以将它们保存在一个数组中,但我不知道有多少int或者可能已经加载了
因此指针不需要有名称,因为它们将存储在一个数组中以便以后使用。我只是想能够多次创建全局变量,只需从数组中访问它们。
答案 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};
构造一个数组,实际上你只有指向它的指针而没有对象名本身。