메모리 동적할당 질문입니다.
유희
질문 제목 :메모리 동적할당 질문입니다.질문 요약 :아래 질문 요약질문 내용 :
------------------------------------------------작성한 c코드--------------------------------------------
#include stdio.h
#include string.h
#include stdlib.hint main(int argc, char **argv)
{
int student; // 입력 받고자 하는 학생 수
int i, input;
char **name; // 학생들의 이름
int sum = 0; // 총점 printf(학생의 수는? : );
scanf(%d, &student); name = (char **)malloc(student*sizeof(char*)); for(i=0;istudent;i++)
{
printf(학생 %d 의 이름 : , i);
scanf(%s, name+i);
} for(i=0;istudent;i++)
{
printf(학생 %d의 이름 : %s\n, i, name+i);
} return 0;}
---------------------------------------------실행결과-------------------------------------------
코드를 실행하면 위에 처럼 나오는데;; 제가 원하는 결과는 이름이 따로 따로 나오는거였거든요..;; 제가 잘못이해하고 있는거 같아서 질문드려요;;1. 학생수를 입력받아서 메모리를 할당하면 만약 학생수가 4이면 char의 크기인 1바이트에 4가 곱해져 총 4바이트의 메모리가 할당이 되는데 제가 이거를 배열처럼 이해를 했거든요. 제가 이해하는게 맞는 건가요??(아래 제가 이해한 그림 참고) 제가 이해한게 맞다면 위에처럼 나오면 안될 거 같은데 왜 그런지 이해가 안가네요 ㅠㅠ2. 위에 코드를 제가 원하는 결과처럼 나오게 하려면 어떻게 해야되나요?
학생0:paul
학생1:mike
학생2:jane
학생3:kate
이런식으로요..
-
하람
답변해주셔서 감사합니다. ^^
-
도도
#include stdio.h
#include string.h
#include stdlib.h
#define STR_LEN 30
int main(int argc, char **argv)
{
\tint student; // 입력 받고자 하는 학생 수
\tint i;
\tchar **name; // 학생들의 이름
\tint sum = 0; // 총점
\t
\tprintf(\학생의 수는? : \);
\tscanf(\%d\ -
사과
답변해주셔서 감사합니다 .^^;;
-
한말글
학생들을 담을 장소는 마련했는데, 각각의 학생이 머물 장소는 마련하지 않았네요