gpt4 book ai didi

c - 动态定义和分配指针

转载 作者:太空宇宙 更新时间:2023-11-04 06:51:07 25 4
gpt4 key购买 nike

我想动态定义和分配指针:

#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);
}
}

但是当我编译它的时候,出现了很多错误。有人可以帮忙解决吗?

最佳答案

你不能做你想做的事。预处理器宏在编译时扩展,它们不能依赖于运行时变量值。所以

def_var(float,*ww,i)=NULL;

扩展为

float *wwi = NULL;

它不会,也不能用变量的值替换 i,它只是执行文本替换。

此外,变量声明具有 block 作用域,因此在 for 循环内声明的任何变量在循环结束时都会消失。

只需声明一个指针数组即可。

float *ww[10];
for (int i = 0; i < 10; i++) {
ww[i] = malloc(100 * sizeof(float *));
}

关于c - 动态定义和分配指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51105369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com