我爲此啓動了一個不同的線程,我試着用他們給我的幫助來解決它,但我無法運行該程序。任何人都可以告訴我程序中出了什麼問題,它應該如何?謝謝。C - 使用動態數組爲自己添加數組
程序應該向自身添加一個數組,並用總和替換原始數據,所以當打印初始數組時,它會打印總和。這是我迄今爲止所做的。
請注意,使用ADDER(a,a)作爲函數調用是必須的。我不能改變這一點。這兩個參數都要通過引用傳遞。
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int size; //global variable
void ADDER(int *a, int *b) {
int i;
for (i = 0; i < size; i++) {
b[i] += a[i];
}
}
int main() {
int n, i;
printf("Enter the number of elements: ");
scanf("%d", &n);
int *a = (int *)malloc(n*sizeof(int));
int *b;
for (i=0; i<n; i++) {
printf("Enter element number %d: ", i);
scanf("%d", &a[i]);
}
ADDER(a,a);
for (i=0; i<n; i++) {
printf("%d", a[i]);
}
}
錯誤:
1> ------構建開始:項目:adderTest,配置:調試的Win32 ------
1> adder.c
1> e:\ my documents \ visual studio 2010 \ projects \ addertest \ addertest \ adder.c(17):警告C4996:'scanf':此函數或變量可能不安全。考慮使用scanf_s代替。要禁用棄用,請使用_CRT_SECURE_NO_WARNINGS。詳細信息請參見在線幫助。
1> E:\ Program Files文件\微軟的Visual Studio 10.0 \ VC \包括\ stdio.h中(304):參見 'scanf函數'
1>電子商務聲明:\我的文檔\ Visual Studio 2010的\ projects \ addertest \ addertest \ adder.c(18):錯誤C2143:語法錯誤:缺少';'在'type'之前
1> e:\ my documents \ visual studio 2010 \ projects \ addertest \ addertest \ adder.c(19):error C2143:syntax error:missing';'之前的 'type'
1> E:\我的文檔\視覺工作室2010 \項目\ addertest \ addertest \ adder.c(22):錯誤C2065:A':未聲明的標識符
1> E: \我的文檔\視覺工作室2010 \項目\ addertest \ addertest \ adder.c(22):錯誤C2109:下標要求數組或指針類型
1> E:\我的文檔\視覺工作室2010 \項目\ addertest \ adde.c(24):error C2065:'a':未聲明的標識符 1> e:\ my documents \ visual studio 2010 \ projects \ addertest \ addertest \ adder.c(24):warning C4047:'function' :'int *'與'int'的間接級別不同
1> E:\我的文檔\ Visual Studio 2010的\項目\ addertest \ addertest \ adder.c(24):警告C4024: '法器':不同類型的正式和實際參數1
1>電子:\ my documents \ visual studio 2010 \ projects \ addertest \ addertest \ adder.c(24):error C2065:'a':未聲明的標識符
1> e:\ my documents \ visual studio 2010 \ projects \ addertest \ addertest \ adder.c(24):warning C4047:'function':'int *'與int的間接級別不同
1> e:\ my documents \ visual studio 2010 \ projects \ addertest \ addertest \ adder.c(24):警告C4024:'ADDER':正式和不同類型實際參數2
1> e:\ my documents \ visual studio 2010 \ projects \ addertest \ addertest \ adder。c(26):error C2065:'a':未聲明的標識符
1> e:\ my documents \ visual studio 2010 \ projects \ addertest \ addertest \ adder.c(26):error C2109:subscript requires array or指針類型
==========生成:0成功,1失敗,0上最新,0已跳過==========
它做什麼而不是它應該做什麼? – 2012-01-03 19:02:06
你不需要施放'malloc'的返回值@ – 2012-01-03 19:02:31
@Scott它不運行,會產生很多錯誤。 – Amjad 2012-01-03 19:04:33