C 언어 에서 전역 배열 과 부분 배열 의 문제
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
char a[MAX];
int main()
{
int i;
char b[MAX];
char *c=(char *)malloc(MAX * sizeof(char));
printf("
Array a:
");
for(i=0;i<MAX;i++)
printf("%d ",a[i]);
printf("
Array b:
");
for(i=0;i<MAX;i++)
printf("%d ",b[i]);
printf("
Array c:
");
for(i=0;i<MAX;i++)
printf("%d ",c[i]);
printf("
Done");
free(c);
return 1;
}
컴 파일 실행 결과: 프로그램의 주요 기능 은 문자 배열 의 Ascii 코드 를 인쇄 하 는 것 입 니 다.전체 배열 a 와 동적 으로 생 성 된 배열 c 가 같은 결 과 를 가 진 것 을 발견 할 수 있 습 니 다.일부 성명 의 배열 b 는 무 작위 수 치 를 분 배 했 습 니 다.이것 이 문제 일 수도 있 습 니 다.솔 루 션:
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
char a[MAX]={0};
int main()
{
int i;
char b[MAX]={0};
char *c=(char *)malloc(MAX * sizeof(char));
printf("
Array a:
");
for(i=0;i<MAX;i++)
printf("%d ",a[i]);
printf("
Array b:
");
for(i=0;i<MAX;i++)
printf("%d ",b[i]);
printf("
Array c:
");
for(i=0;i<MAX;i++)
printf("%d ",c[i]);
printf("
Done");
free(c);
return 1;
}
운영 결과: 배열 의 초기 화 에서 초기 화 된 수치 개수 가 배열 의 크기 보다 작다 고 가정 하면 모두 0 으로 채 웁 니 다.여기 서 값 을 초기 화하 면 배열 에 확실한 결 과 를 줄 수 있 습 니 다.(서로 다른 시스템 과 서로 다른 컴 파일 러 에 서로 다른 결과 가 나 올 수 있 습 니 다)또 하나의 작은 문 제 는 C 언어 에서 빈 칸 의 문제 입 니 다.아래 의 프로그램 을 보 세 요.
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
int main()
{
int i;
char b[MAX]={0};
gets(b);
printf("
Array b:
");
for(i=0;i<MAX;i++)
printf("%d ",b[i]);
printf("
Done");
return 1;
}
여기에"int"(세 개의 빈 칸+int)를 입력 했 습 니 다.인쇄 결 과 는 위의 그림 과 같 습 니 다.b 중 앞의 세 개 는 빈 칸 의 Ascii 코드,즉 32 를 기록 했다.b 중 뒤에 사용 되 지 않 은 공간 은 여전히 0.아르 바 이 트 를 마치 고 끝난다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
백준 10211번 Maximum Subarray나의 아이디어 및 코드 처음에 들어오는 값을 max와 total로 한다. total이 음수가 되면 그 전 값들은 있느니만 못하므로(?) 그 때마다 0으로 초기화해준다. 그리고 현재 max와 total을 계속 비교하여...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.