【发布时间】:2015-04-15 15:38:07
【问题描述】:
我正在尝试创建一个预处理器宏来为任何数据类型的矩阵/向量分配和释放内存。这是我目前所拥有的:
#ifndef H_ARRAY_H
#define H_ARRAY_H
#include "xmalloc.h"
#define make_vector(v,n) (v = xmalloc( (n) * sizeof *(v))
#define free_vector(v) do { free(v) ; v = NULL; } while(0)
#define make_matrx(a , m , n) do { \
size_t make_matrix_loop_counter; \
make_vector(a, (m) + 1); \
for ( make_matrix_loop_counter = 0; make_matrix_loop_counter < (m) ; make_matrix_loop_counter++) \
make_vector((a)[make_matrix_loop_counter], (n)); \
(a)[m] = NULL; \
} while (0)
#define free_matrix(a) do { \
if (a != NULL){ \
size_t make_matrix_loop_counter; \
for (make_matrix_loop_counter = 0 ; (a) [make_matrix_loop_counter] != NULL; make_matrix_loop_counter++) \
free_vector((a)[make_matrix_loop_counter]); \
free_vector(a); \
a != NULL; \
} \
} while (0)
但是当我尝试构造一个矩阵时,它会吐出一个错误“函数‘make_matrix’的隐式声明”。 有什么建议。 PS:xmalloc.h分配空间
【问题讨论】:
-
您希望我们调试您的宏吗?
标签: c matrix vector dynamic-memory-allocation