오류(c언어)
글쓴이: 5t0ryv1ct / 작성시간: 일, 2022/11/13 - 3:21오후
#include <stdio.h> #include <string.h> int main() { int i1 = 0, i2 = 0; //문제1(숫자 다루기) printf("문제 1\n"); scanf_s("%d", &i1); scanf_s("%d", &i2); i1 = i1 + i2; printf("%d\n", i1); char* s1 = NULL; //문제2(문자열 비교) char* s2 = NULL; printf("문제 2\n"); scanf_s("%s", s1, 100); scanf_s("%s", s2, 100); if (s1 != NULL && s2 != NULL) { while (*s1 || *s2) { s1++; s2++; } if (*s1 == 0) { printf("%s\n", s1); } else { printf("%s\n", s2); } } int N; //문제3(이중 반복문) printf("문제 3\n"); scanf_s("%d", &N); while (N == 0) { int i = N; while (i == 0) { printf("*"); i--; } printf("\n"); N--; } return 0; }
이게 빌드는 되는데 실행 도중에 오류가 뜹니다.컴파일 오류는 아닌 것 같은데 어떻게 해야 하나요
*참고로 문제 2에서 오류가 뜹니다
File attachments:
첨부 | 파일 크기 |
---|---|
![]() | 69.65 KB |
Forums:
char* s1 = NULL; //문제2(문자열
char* s1 = NULL; //문제2(문자열 비교)
char* s2 = NULL;
를
char s1[100];
char s2[100];
으로요
근데요
포인터를 쓸 수 있는 방법은 없나요?
☥
char *s1 = malloc(100);
char *s1 = malloc(100);
char *s2 = malloc(100);
포인터와 배열은 크게 다르지 않습니다..
사이즈만 다른 포인터가 배열입니다..
상당히 다릅니다.
상당히 다릅니다.
비슷하게 쓰이는 경우가 많아서 차이점이 특히 더 중요합니다.
혼동하는 사람이 늘 있거든요.
제목에 오해 소지 있네요.
제목에 오해 소지 있네요.
c언어 자체에 오류가 있다는 건지?
c언어로 짠 그대의 프로그램에 오류가 있다는 건지?
세벌 https://sebuls.blogspot.kr/
댓글 달기