[プログラマー]Lv1自然数を配列に反転


1.質問
  • 問題説明
  • 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
  • 制限
  • n은 10,000,000,000이하인 자연수입니다.
    2.送信コード
  • 初回提出
  • #include <stdio.h>
    #include <stdbool.h>
    #include <stdlib.h>
    
    int* solution(long long n) {
        // 리턴할 값은 메모리를 동적 할당해주세요.
        int* answer = (int*)malloc(sizeof(long long));
        int i = 0;
        while(n != 0){
            answer[i] = n%10;
            n /= 10;
            i++;
        }
        
        return answer;
    }

  • 信号:中止(コアダンプ)で失敗

  • 2回目のコミット
  •  ...
        int* answer = (int*)malloc(sizeof(int)*11); //malloc 부분을 살짝 수정했다.
     ...
    
  • は最終的にどのように動的に分配するかが思いつかず、草を提出に変更した.
  • for on(or while)を2回使用し、1回はデジタルビット数の計算、1回は値の記憶に使用したが、複雑すぎるため、1回は頭がいい.
  • 3.学んだこと
  • signal: aborted (core dumped)
  • メモリ関連エラーは、セグメントエラー
  • とも呼ばれる.
  • 無許可メモリアクセスを防止する
  • がここに現れるのは、ポインタとして指定されていないか、誤ったメモリにアクセスしているためです.
  • mallocでメモリに8ビット設定しましたが、9ビット以上のn値が出てきました.これはエラーです!