수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

이중포인터로 동적할당 도와주세요 ..!

카이

2023.04.01

질문 제목 :이중포인터로 동적할당 도와주세요 ..!동적할당 공부중인데 이중포인터 쓰려니까 잘 안되네요...질문 내용 :이중포인터로 동적할당 사용해서 문자열을 무한입력하고 저장하는건데요
char **str=null;
str=(char**)malloc(10);//행, 일단 10개로만 했어요.. 되면 무한으로 되게 수정해야되요

*str=(char*)malloc(21);//열이렇게 선언한다음에for문써서
scanf(%s,*(str+i)); 로 입력을 계속 받고
realloc을 써서 입력받은 문자열 길이만큼 크기 조정해주면서
저장을 하는건데요.. 입력부분이랑 realloc을 어떻게 써야할지 모르겠어요제 생각대로 짠건 오류는 안뜨고 실행은 되는데 입력을 한번하고나서 두번째 입력하면
작동중지 오류가 뜨네요...

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 일본녀

    이중포인터 로 동적할당 하시려면 두번째 할당때 포문으로 돌려서 할당 해줘야합니다

  • 딥체리

    말씀하신건
    str이 문자열 저장 공간이고,
    str + i가 총 문자열을 저장하는 공간이시라는 말씀?

    그렇다면, 거꾸로 만드신것 같군요.
    실제로 거꾸로 만드셔야 되고요.
    (문자열 배열의 다른 예제들을 많이 보시면 좋을 것 같네요)

    그리고 문자열 저장 공간이 sizeof(char)밖에 안된다면,
    scanf(\%s\)로는 입력을 받을 수 없습니다.
    왜냐면 저장 공간이 한글자 밖에 없으니까요.
    scanf(\%c\)로 입력을 받으면서,
    (또는 한글자 입력 받

  • 희미햬

    지금 코딩을 잘못해서 그런건대요.. 10자리에 그냥 sizeof(char)로 바꿧어요.. realloc으로 1씩 늘리면서 문자열 입력한거 저장 하려구요

  • 라

    21이 문자열의 개수? 문자열의 글자수를 의미하는 건가요? 총 문자열의 수를 의미하는 건가요?
    (뒷부분의 코딩은 전자의 의미로 코딩된 것 같군요.)

    str=(char**)malloc(10);
    이건 역할이 뭔가요?

  • 곰탱이

    21이 입력할 문자열갯수에요 위에껀 그냥 1로하고 realloc으로 +1해줘서 재할당 하려구요

  • 푸우

    str=(char**)malloc(10);
    일단 10개를 만드신다고 하셨는데, 무엇을 10개 만드신거죠?
    (행의 역할이 무엇인가요?)

    *str=(char*)malloc(21);
    여기서도 열은 문자열을 저장하는 공간을 의미하는 것 맞나요?
    위에서 10개가 문자열의 수가 10개라는 것을 의미한다면,
    10개가 각각 문자열이 저장될 공간이 있어야 하지 않을까요?

  • ComeOn

    새로운 공간 없이 해보는거라서요.. 햇갈리네요 ㅜ

  • 데이비드

    F5로 실행해 보시면, 죽는 지점이 realloc이 아니라 scanf에서 죽는다는 것을 확인하실 수 있을겁니다.
    그렇다면 문제는 *(str + i)가 문제가 되겠죠.
    (아마도 문자열 배열을 만들고 싶으신것 같은데, 문자열을 저장할 공간은 한번만 할당했죠.)

    요즘은 디버깅툴이 좋아서, F5, F10으로 원하는 부분까지 실행해서 변수값 확인하는게 아주 편리합니다.
    디버깅 툴 사용법을 조금이라도 공부하시면 큰 도움이 될 겁니다.

    사족으로 메모리 버리는 공

  • 개럭시

    #include stdio.h
    #include stdlib.h
    #include string.h

    int main(void)
    {
    \tchar **str=NULL;
    \tint i;

    \tstr=(char**)malloc(10);
    \t*str=(char*)malloc(21);
    \t
    \tfor(i=0;;i++)
    \t{
    \t\tscanf(\%s\

  • 핫핑크

    전체적인 소스를 봐야 할 것 같은데...
    디버깅 해보시면서,
    두번째 입력시에 메모리 주소나 할당 공간등을 확인해 보시면 원인을 찾지 않을까 생각되네요.

번호 제 목 글쓴이 날짜
2700313 파일 읽어서 저장하는데 빈파일일 경우 문재가 발생하네요.. (2) 크나 2025-07-03
2700287 구조체 동적할당 연습을 하는데 오류가 뜹니다...(해결) (3) 아련나래 2025-07-03
2700264 문자와 숫자 동시에 입력??? 글고운 2025-07-03
2700236 txt파일로만 쓰고 읽게 하려면 어떻게 해야 하나요..?? (8) 미국녀 2025-07-03
2700211 전위 연산자 (2) 어른처럼 2025-07-02
2700183 C에서 파일이름을 받고, 그 파일의 사이즈를 출력해줘야하는데 내용이 출력이 안되네요 ;ㅅ; 피스케스 2025-07-02
2700150 꼭좀 도와주세요ㅠㅠㅠ 호습다 2025-07-02
2700095 연산문제...질문... 오빤테앵겨 2025-07-01
2700070 while문 , 3의배수 출력하는 프로그램좀 짜주세욤. 횃불 2025-07-01
2700041 초보인데요 ㅎ 배열안에 배열을 집어넣을수 있나요?? 헛장사 2025-07-01
2700012 배열// (1) 전갈자리 2025-07-01
2699895 무한루프에 빠집니다.!! 해결좀부탁드려요 (10) 선아 2025-06-30
2699842 질문을 너무 많이 하네여.....죄송.... (2) 해님꽃 2025-06-29
2699816 오류 질문입니다.. (1) 해비치 2025-06-29
2699763 질문입니다 ! 꼭 좀 도와주세요ㅠㅠ (2) 미라 2025-06-28
2699555 c언어 다항식을 입력을 했는데 왜 출력이 안될까요? 피스케스 2025-06-27
2699528 C언어 포인터연산 질문입니다. (3) 안녕나야 2025-06-26
2699476 끌어올림;;달력 짜봤는데요 이 소스 줄일 수 있나요? - 스샷첨부 (2) 클라우드 2025-06-26
2699444 [좀 급함] system("explorer [주소] ") 문에 변수를 사용할 수 있나요? 알 2025-06-26
2699415 파일//read//와 배열 아란 2025-06-25
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com