편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2023.04.17

    구조체 사용하여 다항식의 덧셈 구현하는 문제


    #include <stdio.h>
    #define MAX(a,b) ((a>b) ? a : b)
    #define MAX_DEGREE 101
    
    typedef struct {
        int degree;
        int coef[MAX_DEGREE];
    } polynomial;
    
    polynomial poly_add(polynomial A, polynomial B) {
        polynomial C;
        int degree_a = A.degree;
        int degree_b = B.degree;
        int degree_c = MAX(degree_a, degree_b);
        C.degree = degree_c;
    
        while (degree_c <= 0) {
            C.coef[degree_c] = A.coef[degree_c] + B.coef[degree_c];
            degree_c--;
        }
    
        return C;
    }
    
    int main() {
        polynomial a = { 5, {3, 6, 0, 0, 0, 10} };
        polynomial b = { 4, {7, 0, 5, 0, 1} };
        polynomial c = poly_add(a, b);
    
        return 0;
    }
    
    

    while문의 연산에서

    • C6385: 'A.coef'에서 잘못된 데이터를 읽는 중입니다.
    • C6385: 'B.coef'에서 잘못된 데이터를 읽는 중입니다.
    • C6385: 'C.coef'에 쓰는 동안 버퍼 오버런이 발생했습니다.

    위의 에러들이 뜨는데, 왜 안 되는 건지 이해하기 어렵네요. 도와주세요!

  • 프로필 삼주님의 편집
    날짜2023.04.16

    구조체 사용하여 다항식의 덧셈 구현하는 문제


    #include <stdio.h>
    #define MAX(a,b) ((a>b) ? a : b)
    #define MAX_DEGREE 101
    
    typedef struct {
        int degree;
        int coef[MAX_DEGREE];
    } polynomial;
    
    polynomial poly_add(polynomial A, polynomial B) {
        polynomial C;
        int degree_a = A.degree;
        int degree_b = B.degree;
        int degree_c = MAX(degree_a, degree_b);
        C.degree = degree_c;
    
        while (degree_c <= 0) {
            C.coef[degree_c] = A.coef[degree_c] + B.coef[degree_c];
            degree_c--;
        }
    
        return C;
    }
    
    int main() {
        polynomial a = { 5, {3, 6, 0, 0, 0, 10} };
        polynomial b = { 4, {7, 0, 5, 0, 1} };
        polynomial c = poly_add(a, b);
    
        return 0;
    }
    
    

    while문의 연산에서 C6385: 'A.coef'에서 잘못된 데이터를 읽는 중입니다. C6385: 'B.coef'에서 잘못된 데이터를 읽는 중입니다. C6385: 'C.coef'에 쓰는 동안 버퍼 오버런이 발생했습니다. 위의 에러들이 뜨는데, 왜 안 되는 건지 이해하기 어렵네요 ㅠㅠ 도와주세요!