私は最初のCプログラムに取り組んでいます。このプログラムでは、文字列を自由に作成および分解する必要があります。しかし、それを正しく行う方法はわかりません。誰か説明してもらえますか?
これが私がそれを得る限りの私のコードです:
int main( int argc, char ** argv )
{
if ( argc != 2 )
{
_print_help(); /* defined above main() */
exit(0);
}
char *s = argv[1];
char *val = "";
register int i; /* no idea why I need "register" and not just int */
for(i=0;s[i];++i) /* loop over the string, take each character
{ and add it to another string */
strcat(val,s[i]);
printf("v:%s;\n",val);
}
printf("expression: %s\n",s);
}
gccは(autotoolsで生成された)makeファイルから呼び出されます:
gcc -DHAVE_CONFIG_H -I. -g -O2 -MT c-calc.o -MD -MP -MF .deps/c-calc.Tpo -c -o c-calc.o c-calc.c
そして今、strcatへの2番目の入力として整数を入れてはいけないという警告がスローされます。また、string3.hはconst char * __restrict__
単なるaではなく期待していますchar
(Ubuntuはドイツ語で私に話しかけるので、それらを翻訳する必要があります)。コンパイルされたプログラムをアクティブにすると、がスローされ、プログラムはセグメンテーション違反を意味するように見えるMemoryaccess error
コードで戻ります。139