0

まず、この構造体を定義しました:

typedef struct{
    int **_data;
    int _num_of_lines;
    int *_lines_len;
} Lines;

私の目標は_num_of_lines、ユーザーからの入力として受け取ることです。2D配列の行数を定義するために使用されますがdata 、配列_lines_lenは各行の長さを表現しますdata

のメモリを malloc しようとして_lines_lenいますが、配列のサイズが 2 であることが常に返され、その理由がわかりません...

int main(int argc, char *argv[]) {
    Lines linesStruct;
    printf("enter num of lines:\n ");
    scanf("%d",&linesStruct._num_of_lines);
    printf("Num of lines is = %d \n", linesStruct._num_of_lines);

    linesStruct._lines_len = (int*) malloc(linesStruct._num_of_lines * sizeof(int));
    int len = (int) ((sizeof(linesStruct._lines_len))/(sizeof(int)));
    printf("number of lines len = %d \n", len);
4

2 に答える 2