繁体   English   中英

函数语法中的声明

[英]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

callocmalloc一个版本,它在返回之前也将内存清零。

calloc接受两个参数,数组元素的数量和每个数组元素的大小。

例如。

int i = 10;
int* p = calloc(i,sizeof(int));

http://www.cplusplus.com/reference/clibrary/cstdlib/calloc/

C没有new ,只有C ++。

请使用在<stdlib.h>找到的calloc代替

int *t = calloc(n, sizeof(int));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM