提示コードのpirntf();関数のtest1 test2の部分ですが「関数の引数として来た配列の要素数を取得したいのですがなぜ出来ないのでしょうか?」またmemcpy();を使った値のコピーも出来ません。e[0]は1と表示されますがe[1]はゴミの値が表示されてしまいます。
配列のコピーと配列の要素数の取得はどうすれば出来るのでしょうか?
またmain関数のコードではちゃんと正しい値が表示されるのですが関数の引数として来た場合どうすればいいのでしょうか?
cpp
1#include <iostream> 2 3int idx[20] = 4{ 5 1,2,3,4,23,5,34,6 6}; 7 8 9void test(int rr[100]) 10{ 11 //printf("%d\n",rr[2]); 12 13 int e[100]; 14 memcpy(e, rr, sizeof(rr)); 15 printf("%d\n", e[3]); 16 17 printf("test1 : %d\n", sizeof(*rr) / sizeof(rr[0])); 18 printf("test2 : %d\n", sizeof(rr) / sizeof(rr[0])); 19 20} 21 22int main() 23{ 24 printf("main %d\n",sizeof(idx) / sizeof(idx[0])); 25 26 27 test(idx); 28 29 30 31 32 33 return 0; 34} 35
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。