0

プログラムで関数を使用したいのですがatoi、機能しません。

#include <ctype.h>
int value;
value=atoi(buf);

char buf「1000」などを指し、で終了し\0ます。確認しました。ただし、値は常にゼロと評価されます。試しstrtol()ましたが、同じエラーが発生します。

  1. 私のADS(ARM Developer Suit)はv1.2(s3c2440)です。armlibパス(c_t_xx.l)でライブラリを見つけることができます。
  2. デバッグモードを使用axdしているので、コードをトレースできます。見つけたので、asmコードは正しくリンクされていると思います。"bl
    __rt_ctype_table"

この問題を解決するためのアドバイスをお願いします。

4

2 に答える 2

1

ARMは文字列関数に問題がある可能性があります。値を返し、それが正しくないか(バグだと聞いたので、関数を自分で作成する方がよいと聞きました)、値がまったくないかについては言及していません。とにかくそれについてのarmの記事を見てください私はそれが解決策だと思います-文字列関数についてのARMの記事

于 2012-07-17T08:36:57.777 に答える
0

次のコードが機能するはずです、

#include <stdio.h>
#include <stdlib.h>

int main()
{
        int i;
        char buff[5] = "1000\0";
        i=atoi(buff);
        printf("i=%d\n", i); 
        return 0;
}

#./a.out
#i=1000
于 2012-07-17T08:41:39.090 に答える