1

次のプログラムを実行していますが、エラーが発生しました。

First-chance exception at 0x0f32d440 (msvcr100d.dll) in c.exe: 0xC0000005: Access violation reading location 0x00000000.
Unhandled exception at 0x772815de in c.exe: 0xC0000005: Access violation reading location 0x00000000.
The program '[9048] c.exe: Native' has exited with code -1073741510 (0xc000013a).

ここにコードがあります

#include <string.h>
#include <stdio.h> 
#include <stdlib.h> 
int main(int argc, char *argv[], char *env[]) //char *argv[] 
{ 
int i; 

printf("These are the %d command- line arguments passed to main:\n\n", argc); 
if(strcmp(argv[1],"123")==0)                
    {
        printf("success\n");
     }
else
for(i=0; i<=argc; i++) 
    //if(strcmp(argv[1],"abc")==0)

    printf("argv[%d]:%s\n", i, argv[i]);
/*printf("\nThe environment string(s)on this system are:\n\n"); 
for(i=0; env[i]!=NULL; i++) 
printf(" env[%d]:%s\n", i, env[i]);*/ 
system("pause");
} 

問題は strcmp 関数にあるはずですが、解決方法がわかりません。誰でも助けてもらえますか?

4

2 に答える 2

1

for(i=0; i<=argc; i++)する必要がありますfor(i=0; i<argc; i++)

C/C++ 配列は 0 ~ n-1 です。アレイの端から 1 スポット離れています。

于 2013-06-06T04:06:48.393 に答える