【发布时间】:2018-06-29 15:46:46
【问题描述】:
我要动态定义和分配指针:
#include<stdio.h>
#define def_var(type,name,i) type name##i
#define var(name,i) name##i
void main(){
int i;
for (i=0;i<10;i++){
def_var(float,*ww,i)=NULL;
}
for (i=0;i<10;i++){
var(ww,i)=(float *)malloc(100);
}
}
但是当我编译它时,出现了很多错误。有人可以帮忙解决吗?
【问题讨论】:
-
如果您没有在问题中包含错误,那么告诉我们有错误是没有意义的!但很明显,问题在于您在第一个
for循环中声明变量并尝试在第二个循环中使用它们。 -
你也错误地使用了
malloc。您需要以字节为单位指定要分配的大小,因此要分配 100 个浮点数malloc(sizeof(float)*100) -
@Acorn no - 是 10
float *,但 OP 将 * 放在了错误的位置。 -
使用宏来降低代码的可读性是没有意义的。这是XY Problem 吗?你实际上想要达到什么目的?
-
为什么要使用宏来创建编号变量而不是只使用数组?