実現したいこと / 発生している問題
C言語において、配列の要素数を求めたいと思っています。配列の要素数を求めるコードを書いたのですが、同一の配列でも、main関数内での配列の要素数と自分が定義した関数内での配列の要素数が一致しなくて困っています。
該当のソースコード
C
1#include <stdio.h> 2#include <stdlib.h> 3#include <stdint.h> 4#include <string.h> 5#include <strings.h> 6#include <memory.h> 7 8#define MAX_INPUT 100 9 10 11// fgetsの入力に改行が含まれる場合、削除する。 12void remove_newline_ch(char *line) 13{ 14 int new_line = strlen(line) -1; 15 if (line[new_line] == '\n') 16 line[new_line] = '\0'; 17} 18 19 20// 関数内での配列の要素数をprintf 21void FuncSize(int *ObjArray){ 22 23 // 配列のサイズを入手する。 24 int ArraySize = sizeof(ObjArray) / sizeof(ObjArray[0]); 25 printf("VoidLength %d\n",ArraySize); 26 27} 28 29 30// main 31int main(){ 32 33 char input1[MAX_INPUT]; 34 int input1_siz; 35 36 printf("Enter The Number \n"); 37 fgets(input1 , MAX_INPUT , stdin); 38 remove_newline_ch(input1); 39 40 input1_siz = strlen(input1); 41 42 int N = input1_siz; 43 int ans_lis[N]; 44 45 int Size = sizeof(ans_lis) / sizeof(ans_lis[0]); 46 47 printf("N Length %d\n",N); 48 printf("ans_lis Length %d\n",Size); 49 FuncSize(ans_lis); 50 51}
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/02 12:07
2021/06/02 12:46