[英]declaration inside function syntax
我是用C语言编写的,不是用C ++或C#语言编写的。如何才能在一个函数中打开其他数组,并将所有元素中的0只放入一行?
目前我有错误
错误1错误C2065:“新”:未声明的标识符
错误3错误C2143:语法错误:缺少';' 在“类型”之前
错误4错误C2143:语法错误:缺少';' 在“ [”之前
所有错误都在同一位置-在新数组的声明中
void dup(int a[], int n)
{
int i;
int *t = new int[n];
for(i=0; i<=n; i++)
t[i] = 0;
for(i=0;i<n;i++)
t[a[i]]++;
}
尝试在stdlib.h
使用calloc
:
int *t = calloc(n, sizeof *t);
if (!t) {
perror("calloc");
return;
}
new是特定于C ++和C#的关键字,不能在C中使用。
C中堆上的内存主要是通过malloc
函数分配的,并使用free
函数free
。
calloc
是malloc
一个版本,它在返回之前也将内存清零。
calloc
接受两个参数,数组元素的数量和每个数组元素的大小。
例如。
int i = 10;
int* p = calloc(i,sizeof(int));
C没有new
,只有C ++。
请使用在<stdlib.h>
找到的calloc代替
int *t = calloc(n, sizeof(int));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.