【发布时间】:2016-03-07 21:16:56
【问题描述】:
给定一个 typedef 的 ptr 类型,我如何访问基本类型?
例如考虑一个双精度的“数组”:
typedef double* vec_t;
如果我尝试这样初始化:
void init_vec(int n, vec_t v){
v = (vec_t)malloc(n*sizeof(*vec_t));
//...
}
gcc 不完全一样
错误:'vec_t'之前的预期表达式
v = (vec_t)malloc(n*sizeof(*vec_t));
^
这样做的正确方法是什么?
当然,我可以直接写 v = (vec_t)malloc(n*sizeof(double));,但这不是我要找的。p>
【问题讨论】:
-
那么...
sizeof(*double*)是什么? -
v = (vec_t)malloc(n*sizeof(*v))怎么样? -
@EugeneSh。你告诉我。我正在尝试取消引用类型定义。
-
@User1291 我不能告诉你,因为它是你的构造,不是我的。您可以取消引用引用,而不是类型。
-
您确实意识到分配给函数参数不会改变调用者中的相应参数?