• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

처리되지 않은 예외가 throw됨: 쓰기 액세스 위반입니다.

23.01.10 22:17 작성 조회수 3.68k

0

섹션 4.4의 예제를 그대로 따라해보았더니

#include<stdio.h>

int main()
{
	char* str5 = (char*)malloc(sizeof(char) * 100);
	str5[0] = 'H'; str5[1] = 'E'; str5[2] = 'L'; str5[3] = 'L'; str5[4] = 'O'; str5[5] = '\0';

	printf("%zu %zu\n", sizeof(str5), strlen(str5));

	return 0;
}

str5[i]로 배열을 선언하는 부분에서 오류가 납니다. 어떻게 해결해야할까요?

답변 1

답변을 작성해보세요.

0

강민철님의 프로필

강민철

2023.01.11

헤더 파일 include를 누락하신듯 합니다.

아래와 같이

malloc()을 위해 stdlib.h를,

strlen()을 위해 string.h를 include해주세요.

 

#include<stdlib.h>
#include<string.h>
#include<stdio.h>

int main()
{
	char* str5 = (char*)malloc(sizeof(char) * 100);
	str5[0] = 'H'; str5[1] = 'E'; str5[2] = 'L'; str5[3] = 'L'; str5[4] = 'O'; str5[5] = '\0';

	printf("%zu %zu\n", sizeof(str5), strlen(str5));

	return 0;
}