온라인 C 컴파일러 및 디버거

서버 모드 GDB에서 중단점, 변수 확인과 단계별 실행으로 C를 디버깅하세요.

사전 설치 라이브러리
🚀 1,150,969 총 실행 (52,811 이번 달)

Udemy Logo 👨‍💻 실무에 강해지는 C 추천 강의

로드 중…

💡 기술을 향상시키고 싶으십니까? 이러한 과정이 도움이 될 수 있습니다. AI 모델이 귀하의 요청을 처리하는 동안 확인해 보세요.

주제별 탐색

실용 코드, 출력, 메모리 모델, 자료 구조, 알고리즘과 모던 C++를 통해 두 언어를 함께 학습하세요.

C/C++ 예제 →

🧩 이 C 온라인 실행기 소개

CodeUtility C 실행기는 브라우저에서 바로 C 프로그램을 작성하고 실행할 수 있게 해 줍니다 — 설치나 컴파일러 설정이 필요 없습니다. 실제 C 표준을 지원하는 안전한 샌드박스로 구동되며, C89, C99, C11, 그리고 최신 버전까지 지원합니다.

클라우드에서 동작하는 실제 C 컴파일러를 사용하여, 네이티브 환경처럼 코드를 컴파일하고 실행합니다. 간단한 스니펫을 테스트하고, 문법을 익히거나, 입력과 출력을 포함한 완전한 프로그램 작성을 연습할 수 있습니다.

이 도구는 학습자와 개발자가 컴파일러나 IDE를 설치하지 않고도 데이터 타입, 포인터, 반복문, 함수, 배열, 구조체 같은 C의 기본을 빠르게 실험해 볼 수 있도록 설계되었습니다.

단순한 코드 실행기 그 이상

하나의 실행기에서 다중 파일 편집기, 격리된 실행 터미널, 런타임별 라이브러리, 영구 작업 공간, 공유 및 실시간 협업을 이용하세요.

이 실행기는 어떻게 사용하나요?

런타임을 선택하고 파일을 열거나 만든 다음 코드를 작성하고 실행을 선택하세요. 출력은 터미널에 표시되며, 로그인한 사용자는 작업 공간에 파일을 보관하고 라이브러리를 설치하며 공유를 통해 협업할 수 있습니다.

  1. 버전을 선택하고 현재 파일을 편집하거나 작업 공간의 다른 파일을 여세요.
  2. 코드를 실행하고 요청 시 터미널에 입력한 다음 저장된 실행 기록을 확인하세요.
  3. 작업에 둘 이상의 코드 조각이 필요하면 라이브러리, 작업 공간 도구, 공유 및 채팅을 사용하세요.

💡 위에서 바로 시도해 볼 수 있는 C 기초 & 예제

1. 변수와 상수 선언

C에서는 각 변수의 타입을 선언해야 합니다. 읽기 전용 값을 정의하려면 #define 또는 const를 사용하세요.

int age = 30;
double pi = 3.14159;
char grade = 'A';
char name[] = "Alice";
bool isActive = 1; // 참

// 상수
#define MAX_USERS 100
const char* COMPANY = "CodeUtility";

2. 조건문 (if / switch)

분기 처리를 위해 if, else if, switch를 사용하세요.

int x = 2;
if (x == 1) {
    printf("하나\n");
} else if (x == 2) {
    printf("둘\n");
} else {
    printf("기타\n");
}

switch (x) {
    case 1:
        printf("하나\n");
        break;
    case 2:
        printf("둘\n");
        break;
    default:
        printf("기타\n");
}

3. 반복문

for, while, do-while을 사용해 반복을 처리합니다.

for (int i = 0; i < 3; i++) {
    printf("%d\n", i);
}

int n = 3;
while (n > 0) {
    printf("%d\n", n);
    n--;
}

4. 배열

배열은 같은 타입의 여러 요소를 저장합니다.

int numbers[3] = {10, 20, 30};
printf("%d\n", numbers[1]);

5. 구조체

struct는 관련된 데이터를 묶을 수 있게 해줍니다.

struct Person {
    char name[50];
    int age;
};

struct Person p = {"Alice", 30};
printf("%s는 %d살입니다\n", p.name, p.age);

6. 콘솔 입력/출력

printf와 scanf로 콘솔 I/O를 수행합니다.

char name[50];
printf("이름을 입력하세요: ");
scanf("%s", name);
printf("안녕하세요, %s\n", name);

7. 함수

함수는 재사용 가능한 로직을 캡슐화합니다. 반환 타입, 이름, 매개변수를 선언하세요.

int add(int a, int b) {
    return a + b;
}

printf("%d\n", add(3, 4));

8. 포인터

포인터는 메모리 주소를 저장하고 간접적으로 데이터를 조작할 때 사용합니다.

int x = 10;
int* ptr = &x;

printf("x의 값: %d\n", x);
printf("x의 주소: %p\n", ptr);
printf("포인터로 읽은 값: %d\n", *ptr);

*ptr = 20;
printf("업데이트된 x: %d\n", x);

9. 파일 입출력

fopen, fprintf, fscanf, fclose로 파일 작업을 수행합니다.

FILE* file = fopen("file.txt", "w");
fprintf(file, "안녕, 파일");
fclose(file);

char line[100];
file = fopen("file.txt", "r");
fgets(line, sizeof(line), file);
printf("%s", line);
fclose(file);

10. 문자열 처리

<string.h>의 strlen, strcpy, strcmp 같은 함수를 사용하세요.

#include <string.h>

char text[] = "안녕";
char copy[10];

strcpy(copy, text);
printf("길이: %lu\n", strlen(copy));
printf("비교: %d\n", strcmp(copy, "안녕"));

11. 동적 메모리

힙 할당에는 malloc과 free를 사용하세요.

int* nums = (int*) malloc(3 * sizeof(int));
nums[0] = 1; nums[1] = 2; nums[2] = 3;

for (int i = 0; i < 3; i++) {
    printf("%d ", nums[i]);
}

free(nums);

🐞 %{language} 코드를 온라인으로 디버깅하는 방법

온라인 %{language} 디버거로 컴파일러나 IDE를 설치하지 않고 런타임 및 논리 오류를 찾으세요. 서버 모드는 디버그 심볼로 컴파일하고 GDB에서 프로그램을 실행합니다.

  1. 줄 번호 옆에 중단점을 설정합니다.
  2. Debug를 선택해 컴파일하고 첫 중단점에서 멈춥니다.
  3. 현재 줄, 호출 스택과 변수를 확인합니다.
  4. Continue, Step Over, Step Into, Step Out으로 실행을 제어합니다.
  5. 종료하려면 Stop을 선택합니다.

재현 가능한 작은 예제로 시작하고 예상 밖의 동작 직전에 중단점을 설정하세요.