これは私の最初の投稿ですので、私に同行してください。私はしばらくのうちに学校に通った後、Cで書かれています。私は配列全体を同じ行に出力する関数に整数の配列を渡そうとしています(大きな作業の一部として)。私のダウン易しく書き直さコードは、次のとおりです。intポインタを関数に渡して、その配列をC言語で出力します
// main.c
#include <stdio.h>
int main(void) {
int arr[] = {3,4,5,6,7};
int *ptr = arr;
int l = 5;
printarr(arr,l);
return 0;
}
そして
// function printarr
#include <stdio.h>
void printarr(char *ptr, int l) {
int k = 0;
for (k = 0; k < l; ++k) {
printf("%d", ptr[k]);
}
}
をmain.cのをコンパイルし、実行した後、私が手出力は次のようになります。
30004
私は私を破ってきたように私は感じます簡単な問題を見つけようと壁に向かって頭を下げる。私が繰り返し、メインで配列を印刷すると、私が期待している出力( '34567')が得られますが、私が関数を通してそれを実行しようとすると、悲しいです。私はポインタを誤用していると思うが、ええ、わからない。
お手数ですが、
ありがとうございました。
編集:最初の2つのコメントを見て、私は完全に自分自身を恥じている。みんなありがとう。うわー、ちょうどうわー。あなたはそれにint *
を渡しているよう
なぜ 'printarr'は' char * 'を取るのですか? – user2357112
'char * ptr' - >' int * ptr'です。それを使用する前にプロトタイプを置く。 – BLUEPIXY
ちょうど私がどれくらいの時間を今見過ごして過ごしたのはばかげている。私の言葉。新鮮な目に感謝します。 – GGubs