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

khb4435님의 프로필 이미지
khb4435

작성한 질문수

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

10.18 복합 리터럴과 배열 ​

컴파일 에러

해결된 질문

작성

·

248

0

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

#define COLS 4

int sum_1d(int arr[], int n);

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

int main(void)   //int는 출력의 data type main() 안은 입력

{

int arr1[2] = { 1,2 }; //이름이 있는 1차원 배열

int arr2[2][COLS] = { {1,2,3,4}, {5,6,7,8} }; //이름이 있는 2차원 배열

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)); //compound literal 을 함수의 argument로 보내줄 수 있다.

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

printf("\n");

int* ptr1;

int(*ptr2)[COLS]; //개수가 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));

ptrinf("%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 sum_2d(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;

}

했는데

LNK2019 unresolved external symbol ptrinf

referenced in function main 

LNK1120 1 unresolved externals

오류가 뜨네요

답변 2

1

코드에 오타가 있네요

0

위 작성하신 코드를 보시면 ptrinf가 오타인 것을 확인할 수 있습니다. 

printf 철자가 익숙하지 않아 초반에 자주 발생하는 오타인 것 같습니다.

printf에 커서를 대면 전체의 printf가 블록으로 보이는데
블록 여부로 쉽게 오타를 발견하실 수있을 것 같습니다.

khb4435님의 프로필 이미지
khb4435

작성한 질문수

질문하기