해결된 질문
작성
·
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가 블록으로 보이는데
블록 여부로 쉽게 오타를 발견하실 수있을 것 같습니다.