【发布时间】:2012-10-19 00:51:58
【问题描述】:
如果我编译下面的代码,我会收到这样的警告:
警告:内置函数 memset 的隐式声明不兼容 [默认启用]
void transform(int **a, int m, int n)
{
int *row = malloc(m*sizeof(int));
int *col = malloc(n*sizeof(int));
memset(row, 0, sizeof(row));
memset(col, 0, sizeof(col));
[...]
【问题讨论】:
-
sizeof(row)是您平台上的任何指针大小。 IE。 4 in 32 bit env.. 更正确的是memset (raw, 0, m*sizeof(int))- 只是一个注释:) -
p=malloc(x*y)后跟memset(p,0,x*y)与对p=calloc(x,y)的调用相同。