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