인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

10leomessii님의 프로필 이미지
10leomessii

작성한 질문수

홍정모의 따라하며 배우는 C언어

10.18 복합 리터럴과 배열 ​

10.18 질문입니다.

작성

·

209

0

 

include <stdio.h>
#define COLS 4

int sum_1d(int arr[], int n);
int sum_2d(int arr[][COLS], int rows);

int main()
{
    int a = 1;
    3; //Literals are constants that aren't symbolic
    3.14f;
    int b[2] = { 3,4 };
    (int[2]) {3, 4};//compound literal

    //int c[2] = (int[2]){ 3,4 }; //error

    int arr1[2] = { 1,2 };
    int arr2[2][COLS] = { {1,2,3,4},{5,6,7,8,} };

    printf("%d\n", sum_1d(arr1, 2));
    printf("%d\n", sum_2d(arr2, 2));
    printf("\n");

    printf("%d\n", sum_1d((int[2]) { 1, 2 }, 2)); 
    printf("%d\n", sum_2d((int[2][COLS]){ {1,2,3,4},{5,6,7,8} }, 2));
    printf("\n");

    int* ptr1;
    int(*prt2)[COLS];

    ptr1 = (int[2]){ 1,2 };
    ptr2 = (int[2][COLS]){ {1,2,3,4},{5,6,7,8,} };

    printf("%d\n", sum_1d(ptr1, 2));
    printf("%d\n", sum_2d(ptr2, 2));
    printf("\n");

    return 0;
}

int sum_1d(int arr[],int n)
{
    int total = 0;
    for (int i = 0; i < n; ++i)
        total += arr[i];

    return total;
}

int sum2d(int arr[][COLS], int rows)
{
    int    total = 0;
    for (int r = 0; r < rows; r++)
        for (int c = 0; c < COLS; c++)
            total += arr[r][c];

    return total;
}

저는 다 그대로 입력한거같은데 도대체 왜안되는거죠?

 

답변 1

1

#include <stdio.h>를 include <stdio.h> 로 작성하지 않았는지 확인해주세요.

그리고 ptr2가 아닌 prt2로 오타가 난 것 같습니다.

10leomessii님의 프로필 이미지
10leomessii

작성한 질문수

질문하기