簡體   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