Я попытался закодировать программу litle bruteforce. Но я не могу его скомпилировать. Это очень простой программный код, который я думаю, и это причина, почему его ошибка меня так сильно, что она не скомпилировалась. Я искал решение, но не смог нанести удар золотому дну ...bruteforce-code не работает
`1 #include <stdio.h>
2 #include <string.h>
3 char pass;
4 strcpy(pass,"m");
5 int pass_test(int argc, char *argv[]){
6 char s_pass[2];
7 argv[0] = s_pass;
8 if (s_pass == pass){
9 printf("=================\n==Access gained==\n=================");
10 }
11 else{
12 printf("sth. went wrong");
13 }
14 }
15 int main(){
16 char solved_pass[2];
17 char *OP_ABC;
18 int i, p, z;
19 strcpy(OP_ABC, "abcdefghijklmnopqrstuvwxyz");
20 if ((strlen(pass)) == 1){
21 for(i=0;i < strlen(OP_ABC);i++){
22 pass_test(OP_ABC[i]);
23 }
24 }
25 if (strlen(pass) == 2){
26 for(p=0;p < strlen(OP_ABC);p++){
27 for(z=0;z < strlen(OP_ABC);z++){
28 OP_ABC[p] = solved_pass[0];
29 OP_ABC[z] = solved_pass[1];
30 pass_test(solved_pass);
31 }
32 }
33 }
34 }`
это то, что говорит составитель
bruteforce.c:4:13: error: expected ‘)’ before string constant bruteforce.c: In function ‘pass_test’: bruteforce.c:8:13: warning: comparison between pointer and integer [enabled by default] bruteforce.c: In function ‘main’: bruteforce.c:20:2: warning: passing argument 1 of ‘strlen’ makes pointer from integer without a cast [enabled by default] In file included from bruteforce.c:2:0: /usr/include/string.h:399:15: note: expected ‘const char *’ but argument is of type ‘char’ bruteforce.c:22:4: error: too few arguments to function ‘pass_test’ bruteforce.c:5:5: note: declared here bruteforce.c:25:2: warning: passing argument 1 of ‘strlen’ makes pointer from integer without a cast [enabled by default] In file included from bruteforce.c:2:0: /usr/include/string.h:399:15: note: expected ‘const char *’ but argument is of type ‘char’ bruteforce.c:30:5: warning: passing argument 1 of ‘pass_test’ makes integer from pointer without a cast [enabled by default] bruteforce.c:5:5: note: expected ‘int’ but argument is of type ‘char *’ bruteforce.c:30:5: error: too few arguments to function ‘pass_test’ bruteforce.c:5:5: note: declared here
Может кто-нибудь помочь мне, пожалуйста?
При размещении кода, пожалуйста, воздержитесь от добавления строки-номера. Вместо этого отметьте (например, комментарий) строки, которые вызывают проблемы, которые у вас возникают. –
Вы вызываете функцию ('strcpy') в области файлов, и это тоже копирует строку в' char'. Вы должны передать два аргумента 'pass_test', и вы пройдете только один. Вы также скопируете строку в неинициализированный указатель 'char' (' OP_PASS') –
@CoolGuy, почему функция pass_test требует 2 аргумента? –